Рубрики
Без рубрики

Шаблоны проектирования — Композитные

Это было опубликовано на Medium Составной шаблон проектирования представляет собой иерархию, в которой узлы с ch… С тегами ооп, производительность, качество кода, java.

Это было опубликовано на Medium

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

Узор состоит из трех элементов:

  • Компонент : суперкласс, обычно являющийся интерфейсом
  • Составной : узел с дочерними элементами реализует компонент
  • Лист : бездетный узел реализует компонент

Типичным примером является файловая система, в которой есть папки и файлы:

Папки могут содержать файлы, другие папки или могут быть пустыми. С другой стороны, файлы не содержат папок или других файлов!

Помните, что самый важный аспект шаблона дизайна – это его намерение! Как только вы это поймете, вы сможете эффективно использовать шаблон в своих проектах!

Проект: Файловая система

получить исходный код можно здесь

Здесь вы познакомитесь с простой файловой системой, где вы можете увидеть простую реализацию шаблона.

Здесь вы можете увидеть UML нашей файловой системы:

Найдите минутку, чтобы изучить код и:

  • обратите внимание, какой компонент шаблона представляет каждый класс
  • понаблюдайте за выводом кода и увидите разницу между файлом и папка
  • в каких сценариях, по вашему мнению, этот шаблон был бы полезен?

Проект: Расширение нашей Файловой системы

получить исходный код можно здесь

Время испачкать руки:

Теперь, когда вы понимаете, как работает составной шаблон, давайте расширим вашу файловую систему, добавив новые типы файлов!

Возьмите код и реализуйте новый тип файла: Изображение

Общие руководящие принципы:

  • Img должен реализовывать Файловый компонент
  • В Img должно быть поле данных, вы можете использовать все, что вам нравится
  • Вы можете использовать метод отображения файла, чтобы настроить его для нового файла
  • Создайте объект Img и добавьте его в папку!

К концу этого проекта вы применили шаблон в существующей кодовой базе и приобрели практический опыт его применения.

Посмотрите на решение

Счастливого кодирования!!!

Оригинал: “https://dev.to/achimoraites/design-patterns-composite-4k49”