WikiDer > Йо-йо проблема
В разработка программного обеспечения, то йо-йо проблема является антипаттерн это происходит, когда программист должен прочитать и понять программу, граф наследования настолько длинный и сложный, что программисту приходится постоянно переключаться между множеством различных определений классов, чтобы следовать потоку управления программой. Часто бывает в объектно-ориентированного программирования. Этот термин происходит от сравнения подпрыгивающего внимания программиста с движением игрушки вверх-вниз. Йоу йоу. Тэнзер, Ганти и Подар описали проблему по имени, объяснив: «Часто мы чувствуем себя верхом на йойо, когда пытаемся понять одно из этих деревьев сообщений».[1]
В большинстве практик объектно-ориентированного программирования рекомендуется, чтобы граф наследования был как можно более мелким, отчасти чтобы избежать этой проблемы. Использование сочинение вместо того наследование также настоятельно рекомендуется, хотя это по-прежнему требует от программиста одновременного учета нескольких определений классов.
В более общем плане проблема йо-йо может также относиться к любой ситуации, когда человек должен постоянно переключаться между различными источниками информации, чтобы понять концепцию.
Техники объектно-ориентированного дизайна, такие как документирование слои иерархии наследования могут уменьшить влияние этой проблемы, поскольку они собирают в одном месте информацию, которую программист должен понимать.
Смотрите также
- Шаблоны проектирования § Введение, Глава 1
- Сложность Что означает сложность системы (любого вида)
- Предел Hrair Предположение, что люди могут одновременно принимать не более семи концепций
- Наследование реализации
- Семантика наследования
- Виртуальное наследование (объектно-ориентированное программирование)
Рекомендации
- ^ Тэнзер, Дэвид; Ганти, Мурти; Подар, Сунил (1989). «Проблемы при повторном использовании объектно-ориентированного программного обеспечения» (PDF). ECOOP 89: Материалы третьей европейской конференции по объектно-ориентированному программированию, 1989 г.. Издательство Кембриджского университета. стр. 33–34. Получено 22 марта 2013.