Автор оригинала: Pankaj Kumar.
Банды из четырех шаблонов проектирования-это коллекция из 23 шаблонов проектирования из книги “Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения”.
Эта книга была впервые опубликована в 1994 году и является одной из самых популярных книг для изучения шаблонов дизайна. Авторами книги были Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссайдс. Он получил прозвище “Банды из четырех шаблонов дизайна” из-за четырех авторов. Кроме того, он получил более короткое название “Шаблоны проектирования GoF”.
Типы шаблонов проектирования GoF
Шаблоны проектирования GoF делятся на три категории:
- Creational : Шаблоны проектирования, связанные с созданием объекта.
- Структурные : Шаблоны проектирования в этой категории имеют дело со структурой классов, такой как наследование и композиция.
- Поведенческий : Этот тип шаблонов проектирования обеспечивает решение для лучшего взаимодействия между объектами, как обеспечить связь и гибкость, чтобы легко расширяться в будущем.
Шаблоны Творческого Проектирования
В категории шаблоны креативного дизайна есть 5 шаблонов дизайна.
Одноэлементный шаблон ограничивает инициализацию класса, чтобы гарантировать, что может быть создан только один экземпляр класса. | Синглтон |
Фабричный шаблон берет на себя ответственность за создание экземпляра объекта из класса в фабричный класс. | Фабрика |
Позволяет нам создать фабрику для фабричных классов. | Абстрактная фабрика |
Создание объекта шаг за шагом и метод, чтобы, наконец, получить экземпляр объекта. | Строитель |
Создание нового экземпляра объекта из другого аналогичного экземпляра, а затем изменение в соответствии с нашими требованиями. | Прототип |
Структурные Шаблоны Проектирования
Существует 7 структурных шаблонов проектирования, определенных в книге “Банды четырех шаблонов проектирования”.
Обеспечивает интерфейс между двумя несвязанными сущностями, чтобы они могли работать вместе. | Адаптер |
Используется, когда нам нужно реализовать иерархию “часть-целое”. Например, диаграмма, составленная из других частей, таких как круг, квадрат, треугольник и т. Д. | Составной |
Предоставьте суррогат или заполнитель для другого объекта, чтобы контролировать доступ к нему. | Полномочие |
Кэширование и повторное использование экземпляров объектов, используемых с неизменяемыми объектами. Например, пул строк. | Мушиный вес |
Создание интерфейсов-оболочек поверх существующих интерфейсов для помощи клиентским приложениям. | Фасад |
Шаблон проектирования моста используется для отделения интерфейсов от реализации и сокрытия деталей реализации от клиентской программы. | Мост |
Шаблон дизайна декоратора используется для изменения функциональности объекта во время выполнения. | Оформитель |
Поведенческие Шаблоны Проектирования
Существует 11 поведенческих шаблонов проектирования, определенных в шаблонах проектирования GoF.
используется для создания заглушки метода шаблона и переноса некоторых шагов реализации на подклассы. | Метод шаблона |
используется для обеспечения централизованной среды связи между различными объектами в системе. | Посредник |
используется для достижения слабой связи при разработке программного обеспечения, когда запрос от клиента передается цепочке объектов для их обработки. | Цепочка ответственности |
полезно, когда вас интересует состояние объекта и вы хотите получать уведомления о любых изменениях. | Наблюдатель |
Шаблон стратегии используется, когда у нас есть несколько алгоритмов для конкретной задачи, и клиент решает, какая фактическая реализация будет использоваться во время выполнения. | Стратегия |
Шаблон команды используется для реализации слабой связи в модели запрос-ответ. | Команда |
Шаблон проектирования состояния используется, когда объект изменяет свое поведение в зависимости от своего внутреннего состояния. | Государство |
Шаблон посетителя используется, когда нам нужно выполнить операцию над группой объектов аналогичного типа. | Посетитель |
определяет грамматическое представление языка и предоставляет интерпретатора для работы с этой грамматикой. | Переводчик |
используется для обеспечения стандартного способа прохождения через группу объектов. | Итератор |
Шаблон дизайна памятки используется, когда мы хотим сохранить состояние объекта, чтобы мы могли восстановить его позже. | Сувенир |
Вывод
Группы из четырех шаблонов проектирования закладывают основу основных шаблонов проектирования в программировании. Существует множество других шаблонов проектирования, построенных поверх этих шаблонов для конкретных требований.