Last updated
Last updated
Композитният модел е един от моделите на структурния дизайн. Композитният модел на проектиране се използва, когато трябва да представим йерархия на част от цялото.
Когато трябва да създадем структура по начин, по който обектите в структурата трябва да бъдат третирани по същия начин, можем да приложим композитен модел на дизайн. Нека го разберем с пример от реалния живот - Диаграмата е структура, която се състои от обекти като кръг, линии, триъгълник и т.н. Когато напълним чертежа с цвят (да речем червен), същият цвят се прилага и към обектите в чертежа. Тук чертежът се състои от различни части и всички те имат едни и същи операции. Композитният модел се състои от следните обекти.
Базов компонент - Базов компонент е интерфейсът за всички обекти в композицията, клиентската програма използва базов компонент за работа с обектите в композицията. Тя може да бъде интерфейс или абстрактен клас с някои методи, общи за всички обекти.
Лист - Определя поведението на елементите в състава. Това е градивният елемент за композицията и изпълнява базовия компонент. Той няма препратки към други компоненти.
Композитен - Състои се от листни елементи и изпълнява операциите в базов компонент.
Тук прилагам композитен модел на проектиране за сценария за рисуване.
Композитният основен компонент на модела определя общите методи за листа и композити. Можем да създадем клас с метод за рисуване на формата с даден цвят.
Композитен дизайн модел листа изпълнява основен компонент и това са градивния елемент за композита. Можем да създадем множество листни обекти като триъгълник, кръг и т.н.
Композитният обект съдържа група листни обекти и трябва да предоставим някои помощни методи за добавяне или изтриване на листа от групата. Можем също така да предоставим метод за премахване на всички елементи от групата.
Изходът от горната композитна клиентска програма е:
Композитният модел трябва да се прилага само когато групата обекти трябва да се държи като единичен обект.
Композитният дизайн може да се използва за създаване на дървовидна структура.