Re[7]: Паттерны. Тестовые задачки.
От: Аноним  
Дата: 22.09.04 13:25
Оценка:
А>>Так весь смысл Composite, что-бы в коде писать Composite.Draw() или другой метод. А сама реализация уже в классе. Добавления еще одного объекта или дополнительной агрегации кода приложения не меняет.

SYG>Но ведь на разных уровнях агрегации (в подавляющем большинстве случаев, короче — всегда) находятся объекты разных типов. То есть у них нет общих методов, типа Draw() или ему подобных. Наверняка присутствующий у всех метод это метод SetAggregate(NewAggregate)...


Если вы все-таки возьмете эту книгу, то в паттерне Compose, все объекты прикладные объекты, в т.ч и агрегирующий объект наследуются от одного абстарктного объекта-интерфеса. Работа со всей системой ведется только через эти интерфейсы. А сами объекты, получая например вызов draw() с верхнего уровня, уже сами разбираются как себя рисовать в зависимости от его природы.
Спорить дальше не хочу, т.к. сам учу паттерны, но в книге все очень доходчиво расписано именно по тем вопросам, что вы поставили. ТОлько пример текстового редактора, на котором это все рассматривалось — весьма сложен для самостоятельной реализации.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.