свободу действий и сокращает

Автор admin Понедельник, 22 июня 2009 11:32

свободу действий и сокращает практическую полезность этого паттерна. Но справедливости ради предположим, что у вас имеется фиксированная основная иерархия классов; возможно, вы получили ее от другого разработчика и не можете вносить в нее изменения. Если бы у вас был исходный код библиотеки, в базовый класс можно было добавить новые виртуальные функции, но по каким-то причинам это невозможно. В другом, более правдоподобном сценарии добавление новых функций создает неудобства, уродливо выглядит или по иным причинам затрудняет сопровождение. БЧ возражает: «распределение всех этих операций по узловым классам усложняет понимание, сопровождение и модификацию системы» — но как вы вскоре убедитесь, паттерн Посетитель может породить еще больше проблем. Другой аргумент БЧ — интерфейс основной иерархии нежелательно захламлять слишком большим количеством операций (с другой стороны, если интерфейс становится излишне «тяжеловесным», возникает вопрос, не перегружен ли объект лишней функциональностью). Впрочем, создатели библиотеки предвидели, что вы захотите добавить в иерархию новые операции, поэтому они включили ф


Комментарии закрыты.