Jump to content

Йо-йо проблема

В разработке программного обеспечения проблема йо -йо — это антишаблон , который возникает, когда программисту приходится читать и понимать программу, граф наследования которой настолько длинный и сложный, что программисту приходится постоянно переключаться между множеством различных определений классов, чтобы следовать поток управления программой. Чаще всего это встречается в контексте объектно-ориентированного программирования . Этот термин произошел от сравнения подпрыгивающего внимания программиста с движением вверх-вниз игрушечного йо-йо . Тензер, Ганти и Подар описали проблему по имени, объяснив: «Часто у нас возникает ощущение, что мы катаемся на йойо , когда пытаемся понять одно из этих деревьев сообщений». [1]

Большинство практик объектно-ориентированного программирования рекомендуют сохранять граф наследования как можно более мелким, отчасти во избежание этой проблемы. Использование композиции вместо наследования также является настоятельно предпочтительным, хотя это по-прежнему требует, чтобы программист имел в виду несколько определений классов одновременно.

Глубокие иерархии — это запах кода и признак подклассификации для повторного использования кода . [2]

В более общем смысле, проблема йо-йо может также относиться к любой ситуации, когда человеку приходится постоянно переключаться между различными источниками информации, чтобы понять концепцию.

Существует несколько методов рефакторинга кода, позволяющих сгладить эти иерархии без ущерба для общего поведения.

Методы объектно-ориентированного проектирования, такие как документирование слоев иерархии наследования, могут уменьшить эффект этой проблемы, поскольку они собирают в одном месте информацию, которую программист должен понять.

См. также

[ редактировать ]
  1. ^ Тенцер, Дэвид ; Ганти, Мурти; Подар, Сунил (1989). «Проблемы повторного использования объектно-ориентированного программного обеспечения» (PDF) . ECOOP 89: Материалы Третьей Европейской конференции по объектно-ориентированному программированию, 1989 . Издательство Кембриджского университета. стр. 33–34 . Проверено 22 марта 2013 г.
  2. ^ «Запах кода 11 — подклассификация для повторного использования кода» . хэшнод. 30 октября 2020 г. Проверено 18 января 2021 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fc6503eec8eb2d500156e6fed8c4786f__1717390680
URL1:https://arc.ask3.ru/arc/aa/fc/6f/fc6503eec8eb2d500156e6fed8c4786f.html
Заголовок, (Title) документа по адресу, URL1:
Yo-yo problem - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)