Шаблон проектирования Компоновщик (Composite) | OTUS

Шаблон проектирования Компоновщик (Composite)

Arch_headline_970x70-1801-410a68.png

Компоновщик — это структурный шаблон проектирования, который объединяет объекты в древовидную структуру, обеспечивая тем самым представление иерархии от частного к целому. Composite позволяет клиентам одинаково обращаться как к отдельным объектам, так и к группам объектов. Также Компоновщик: — определяет иерархию классов, способных одновременно состоять из примитивных и сложных объектов; — упрощает процесс добавления новых видов объекта; — упрощает архитектуру клиента.

Для примера возьмем абстрактную организацию. Как известно, каждая организация компонуется из сотрудников, причем у каждого такого сотрудника, скажем так, существуют одинаковые свойства: служебные обязанности, заработная плата, отчетность и т. п. Так вот, шаблон Composite дает возможность клиентам работать в едином стиле с индивидуальными объектами.

Это можно продемонстрировать в коде. Итак, у нас есть Employee разных типов:

1-1801-7daf5c.png

Соответственно, тогда у нас есть и организация, состоящая из нескольких разных типов сотрудников:

2-1801-9633e4.png

И затем это может быть использовано следующим образом:

3-1801-ef1976.png

Вот, пожалуй, и все. Осталось посмотреть пример Компоновщика на языке Java: https://github.com/iluwatar/java-design-patterns/tree/master/composite.

Arch_headline_970x70-1801-410a68.png

По материалам статьи «Design Patterns for Humans» — https://github.com/kamranahmedse/design-patterns-for-humans.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто