Определение составного паттерна - PullRequest
1 голос
/ 07 января 2012

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

Ответы [ 3 ]

9 голосов
/ 07 января 2012

Составной шаблон - это шаблон проектирования разбиения.Составной шаблон описывает, что group of objects должен обрабатываться так же, как отдельный экземпляр object.Назначение составной части состоит в том, чтобы " составить " объектов в древовидные структуры для представления иерархий части-целого .Реализация составного шаблона позволяет клиентам обрабатывать отдельные объекты и композиции одинаково.enter image description hereComposite может использоваться, когда клиенты должны игнорировать разницу между compositions из objects и individual objects.Если программисты обнаружат, что они используют несколько объектов одним и тем же способом и часто имеют почти идентичный код для обработки каждого из них, тогда составной является хорошим выбором;в этой ситуации менее сложно рассматривать примитивы и композиты как однородные.

1 голос
/ 07 января 2012

Позволяет обрабатывать группу объектов как единый объект.

Составной шаблон описывает, что группу объектов следует обрабатывать так же, как один экземпляр объекта..

Википедия очень хорошо описывает пример с диаграммами и примером кода, который здесь будет слишком много для дублирования.

0 голосов
/ 20 мая 2016

Я попытаюсь объяснить вам пример: представьте, что у нас есть организация, которая, как и любая другая, имеет сотрудников и менеджеров.Вне курса менеджеры могут иметь несколько сотрудников под ними.Теперь, если мы попытаемся спроектировать приложение, используя композитный шаблон, менеджеры будут композитами, в которых будет список сотрудников.Ответ на ваш вопрос: «Хотя менеджеры - это композиты, к ним нужно относиться и как к сотрудникам, поскольку они ведут себя одинаково, не так ли?Надеюсь, это поможет.

...