Composite
Directory actions
More options
Directory actions
More options
Composite
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
Компоновщик — это структурный паттерн, который позволяет создавать дерево объектов и работать с ним так же, как и с единичным объектом. Компоновщик давно стал синонимом всех задач, связанных с построением дерева объектов. Все операции компоновщика основаны на рекурсии и «суммировании» результатов на ветвях дерева. Очень практичный паттерн Компоновщик воплощает собой суть полиморфизма, как мне кажется. В данном примере представлены вложенные в контейнеры объекты: Army содержит в себе Squad Squad содержит в себе Soldier А коллекция iMilitaries в Main содержит в себе все объекты имплементирующие IMilitary интерфейс В данном примере мы за счет имплементации интерфейса IMilitary в военных объектах и реализации метода getPower() получили возможность работать с иерархией объектов Army -> Squad -> Soldier как с одинаковыми объектами, но еще и добавили туда же объекты не принадлежащие к данной иерархии - MilitaryEquipment Если появится еще какие-то военные объекты то мы запросто добавим их к "Компоновщику"