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

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

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

Хранитель (англ. 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
🚩 Шаблон проектирования Заместитель

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

Заместитель (англ. Proxy) — структурный паттерн проектирования. Он позволяет подставлять вместо реальных объектов специальные объекты-заменители. Эти объекты перехватывают вызовы к оригинальному объекту, позволяя сделать что-то до или после передачи вызова оригиналу.

🟪 Ситуации, когда можно использовать паттерн Заместитель:

🔎 Виртуальный proxy является заместителем объектов, создание которых обходится дорого. Реальный объект создается только при первом запросе/доступе клиента к объекту.

🔎 Удаленный proxy предоставляет локального представителя для объекта, который находится в другом адресном пространстве ("заглушки" в RPC и CORBA).

🔎 Защитный proxy контролирует доступ к основному объекту. "Суррогатный" объект предоставляет доступ к реальному объекту, только вызывающий объект имеет соответствующие права.

🔎 Интеллектуальный proxy выполняет дополнительные действия при доступе к объекту.

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

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

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

🟪 Когда применять:

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

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

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

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

Прототип (англ. Prototype) — порождающий паттерн проектирования. Он позволяет копировать объекты, не вдаваясь в подробности их реализации.

🟪 Когда использовать Прототип?

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

🔎 Когда нежелательно создание отдельной иерархии классов фабрик для создания объектов-продуктов из параллельной иерархии классов (как это делается, например, при использовании паттерна Абстрактная фабрика).

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

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