Pattern Guru. Шаблоны проектирования. Архитектура ПО – Telegram
Pattern Guru. Шаблоны проектирования. Архитектура ПО
5.88K subscribers
214 photos
3 videos
122 links
Патерны программирования.
Архитектура ПО.
Микросервисы

@anothertechrock
Download Telegram
🚩 Шаблон проектирования Посетитель

🟣 Подробное описание паттерна

Посетитель (англ. Visitor) — это поведенческий паттерн проектирования, который позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться.

🟪 Когда применяется Посетитель?

🔎 Когда вам нужно выполнить какую-то операцию над всеми элементами сложной структуры объектов, например, деревом.

🔎 Когда над объектами сложной структуры объектов надо выполнять некоторые не связанные между собой операции, но вы не хотите «засорять» классы такими операциями.

🔎 Когда новое поведение имеет смысл только для некоторых классов из существующей иерархии.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👌1
🚩 Шаблон проектирования Фабричный метод

🟣 Подробное описание паттерна

Фабричный метод (англ. Factory Method) — порождающий паттерн проектирования. Он определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.

🟪 Используется, когда:

🔎 Классу заранее неизвестно, объекты каких подклассов ему нужно создать.

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

🔎 Создаваемые объекты родительского класса специализируются подклассами.

Применяйте шаблон Фабричный метод в случае, когда хотите без проблем внедрять в вашу программу новые объекты с новыми конфигурациям для взаимодействия с основной бизнес-логикой.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👌1
🚩 Шаблон проектирования Компоновщик

🟣 Подробное описание паттерна

Компоновщик (англ. Composite) — структурный паттерн проектирования. Он позволяет сгруппировать множество объектов в древовидную структуру, а затем работать с ней так, как будто это единичный объект.

🙂Аналогия из жизни🙂

Армии большинства государств могут быть представлены в виде перевёрнутых деревьев. На нижнем уровне у вас есть солдаты, затем взводы, затем полки, а затем целые армии. Приказы отдаются сверху и спускаются вниз по структуре командования, пока не доходят до конкретного солдата.

🟪 Достоинства паттерна:

🔎 В систему легко добавлять новые примитивные или составные объекты, так как Composite использует общий базовый класс Component.

🔎 Код клиента имеет простую структуру – примитивные и составные объекты обрабатываются одинаковым образом.

🔎 Паттерн позволяет легко обойти все узлы древовидной структуры.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2👍1
🚩 Шаблон проектирования Хранитель

🟣 Подробное описание паттерна

Хранитель (англ. Memento) – поведенческий паттерн проектирования. Он позволяет определять, сохранять, а также восстанавливать предыдущие состояния объектов без нарушения принципа инкапсуляции.

🟪 Применяйте этот паттерн, когда:

🔎Вам нужно сохранять мгновенные снимки состояния объекта (или его части), чтобы впоследствии объект можно было восстановить в том же состоянии.

🔎 Прямое получение состояния объекта раскрывает приватные детали его реализации, нарушая инкапсуляцию.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1👌1