День сто двадцать девятый. #Шаблоны

Шаблоны проектирования в C#

Типы шаблонов проектирования:

- Порождающие

- Структурные

- Поведенческие



Порождающие шаблоны

Шаблоны, имеющие дело с процессом создания объектов:

1. Абстрактная фабрика - создание экземпляров нескольких классов, принадлежащих к разным семействам.

2. Строитель - отделяет создание объекта от его представления.

3. Фабричный метод - предоставляет подклассам интерфейс для создания экземпляров некоторого класса.

4. Прототип - указывает тип объектов, создаваемых с использованием прототипа, и создаёт новые объекты, скопировав этот прототип.

5. Одиночка - гарантирует, что класс может иметь только один экземпляр.



Структурные шаблоны

Эти шаблоны имеют дело с композицией структур объектов:

1. Адаптер - интерфейсы классов варьируются в зависимости от требований.

2. Мост - абстракция уровня класса отделена от его реализации.

3. Составной - при этом подходе отдельные объекты и группа объектов обрабатываются одинаково.

4. Декоратор - функциональность назначается объекту.

5. Фасад - для группы интерфейсов, имеющих общее сходство, создается общий интерфейс.

6. Легковесный - концепция совместного использования группы объектов небольшого размера.

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



Поведенческие шаблоны

Эти шаблоны касаются процесса общения, управления отношениями и ответственности между объектами:

1. Цепочка ответственности - в этом шаблоне объекты взаимодействуют друг с другом в зависимости от логических решений, принятых классом.

2. Команда - в этом шаблоне объекты инкапсулируют методы и передаваемые им параметры.

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

4. Интерпретатор - способ включения языковых элементов в программу.

5. Итератор - предоставляет способ последовательного доступа к элементам перечислимого объекта без раскрытия подробностей реализации.

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

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

8. Состояние - позволяет объекту изменять свое поведение при изменении его внутреннего состояния. Объект появляется, чтобы изменить свой класс.

9. Стратегия - определяет семейство алгоритмов, инкапсулирует каждый и делает их взаимозаменяемыми. Стратегия позволяет алгоритму варьироваться независимо от клиентов, которые его используют.

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

11. Шаблонный метод – позволяет отложить реализацию алгоритма до подклассов.



Источник: https://www.c-sharpcorner.com