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

Многим приложениям, которые имеют дело с иерархическими данными, необходимо убедиться, что они не имеют слишком большой зависимости между своими классами, потому что таким приложениям постоянно требуется обновлять свои компоненты. Файловая система - классический пример иерархической структуры, которая содержит папки внутри папок и файлы внутри папок. Файл может быть видео, текстовым документом, аудиофайлом. Таким образом, в одной папке может быть несколько аудиофайлов, а в другой - несколько видеофайлов, и оба они могут находиться внутри другой папки, представляющей медиа, которая сама может находиться в другой папке, называемой лекции. Папка лекции может также содержать другую папку, представляющую тему, и это может продолжаться вечно. Мы пытаемся подчеркнуть, что если вы пытаетесь разработать такое приложение, которое имеет дело с иерархическими компонентами, вы можете в конечном итоге создать структуры классов, которые сильно связаны, и для добавления дополнительных компонентов может возникнуть большая избыточность. Для решения этой распространенной проблемы шаблон составного проектирования обеспечивает элегантное решение. Прежде всего, давайте посмотрим, что такое составной шаблон проектирования? (Компания по разработке Java)

Что такое составной шаблон проектирования?

Составной шаблон проектирования обеспечивает иерархию проектирования, в которой узлы с дочерними элементами отличаются от узлов без дочерних узлов. В этом случае вы можете представить себе древовидную структуру данных. И по сравнению с нашим примером, узел может быть папкой, а дочерние элементы могут быть файлами или папками, состоящими из файлов. Группа объектов обрабатывается так же, как один экземпляр того же типа этого объекта, поэтому, несмотря ни на что, мы будем думать об узле и его дочерних элементах как о компоненте папки, это облегчает нам проектирование иерархической структуры. состав компонентов для нашего приложения. Мы будем называть компоненты (объекты) внутри компонентов (объектов) композициями. Шаблон составного дизайна позволяет клиенту одинаково обрабатывать отдельные объекты и композиции. Главное, о чем следует помнить, - это древовидная структура при работе с этим шаблоном проектирования. Чтобы лучше понять, что такое составной шаблон проектирования и его применимость, давайте воспользуемся примером кода на java, который аналогичен приведенному нами примеру файловой системы.

Прочтите: « Все, что вам нужно знать о шаблоне разработки метода шаблонов »

Пример составного шаблона проектирования

В качестве примера мы будем использовать курс, состоящий из тем и лекций. Если вы изучаете курс по какому-либо предмету, у вас будет тема, которая может состоять из множества тем и лекций. Итак, как бы это было реализовано? Сначала мы покажем вам общий подход.

1. Давайте создадим лекционный класс.

Рис: пример составного шаблона проектирования на java - лекционный курс

У лекции есть имя и метод отображения для отображения ее иерархии.

2. Тематический класс

Рис: пример составного шаблона проектирования на java - Topic Class

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

3. Давайте посмотрим, как мы объединим их в основном методе.

Полная статья: https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java