День сто двадцать девятый. #Шаблоны
Шаблоны проектирования в 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
Шаблоны проектирования в 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