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

@anothertechrock
Download Telegram
🚩 Шаблон проектирования Приспособленец (Легковес)

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

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

Основная идея паттерна — различие между внутренним и внешним состоянием объекта. Внешнее состояние передается клиентом, использующим приспособленца, в некотором контексте. Внутреннее состояние хранится непосредственно в приспособленце и позволяет разделять их. Под разделением понимается возможность одновременной работы нескольких клиентов с одним и тем же приспособленцем.

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

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

Команда (англ. Command) — один из поведенческих шаблонов, добавляющий слой абстракции между действием и объектом, который это действие вызывает. Пример - кнопка и действие, которое выполняется при нажатии на эту кнопку.

Паттерн преобразовывает запрос на выполнение действия в отдельный объект-команду.

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

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

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

🔎 Когда вы хотите ставить операции в очередь, выполнять их по расписанию или передавать по сети.

🔎 Когда вам нужна операция отмены.

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

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

Посетитель (англ. 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