Blog posts about GoF design patterns — страница 2

1 13.9K

Порождающие паттерны: Прототип (Prototype) C#

В данной статье мы рассматриваем порождающий шаблон проектирования "Прототип" и его реализацию на .NET

Назначение:

Прототип —​ позволяет создавать новые объекты путем клонирования уже существующих. По сути данный паттерн предлагает технику клонирования объектов.

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

  1. Класс порождаемого объекта определяется в момент выполнения.
  2. Когда желательно избежать наследования создателя объекта. В этом случае, Прототип является конкурентом Абстрактной фабрики.

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

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

1 12K

Структурные паттерны: Мост (Bridge) C#

В данной статье мы рассматриваем структурный паттерн "Мост" и его реализацию на .NET

Назначение:

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

Шаблон Мост предполагает, что основной код, необходимый для функционирования объекта, переносится в реализацию. Всё остальное, включая взаимодействие с клиентом, содержится в абстракции. Её методы, при необходимости, могут быть изменены или дополнены. Кроме того, она содержит экземпляр реализации и использует его для обработки поступающих от клиентов запросов. Под обработкой подразумевается как прямая переадресация запроса, так и вызов группы методов реализации для получения результата.

Когда использовать паттерн мост?

  • Когда надо избежать постоянной привязки абстракции к реализации

  • Когда наряду с реализацией надо изменять и абстракцию независимо друг от друга. То есть изменения в абстракции не должно привести к изменениям в реализации