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

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

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

Структурный паттерн Декоратор (англ. Decorator) позволяет расширять функциональность без использования наследования.

Дело в том, что механизм наследования имеет несколько проблем:

1️⃣ Он статичный, т.е. не дает возможности менять поведение уже существующего объекта.
2️⃣ Он не позволяет наследовать поведение нескольких классов одновременно.

Декоратор позволяет обойти эти проблемы. Суть этого шаблона отлично передает его второе название — "обертка". Вы помещаете один объект в другой — обертку. Обертка запускает базовое поведение объекта, а затем что-то добавляет к нему.

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

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

Структурный паттерн Фасад (англ. Facade) помогает скрыть способ реализации сложной системы и предоставляет клиенту простой интерфейс взаимодействия с ней.

Другими словами, данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации.

Фасад полезен, если вы используете какую-то сложную библиотеку со множеством подвижных частей, но вам нужна только часть её возможностей.

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

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

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

Это объект-переводчик, который трансформирует интерфейс или данные одного объекта в такой вид, чтобы он стал понятен другому объекту.

При этом адаптер оборачивает один из объектов так, что другой объект даже не знает о наличии первого.

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

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

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

🟪 Этот шаблон стоит использовать, если:

🔎 Ваша система должна быть независимой от способа создания новых объектов

🔎 Создаваемые объекты должны использоваться вместе и быть взаимосвязанными.

Классы абстрактной фабрики часто реализуются фабричными методами, но могут быть реализованы и с помощью паттерна Prototype.

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

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

Мост
(англ. Bridge) относится к классу структурных паттернов. Он позволяет отделить абстракцию от реализации, благодаря чему становится возможно изменять код в каждой ветке по отдельности.

🟪 Паттерн Мост полезен там, где часто меняется не только сам класс, но и то, что он делает. Он позволяет разделить монолитный класс на несколько отдельных иерархий. После этого вы можете менять их код независимо друг от друга. Это упрощает работу над кодом и уменьшает вероятность внесения ошибок.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏2