Банда четырех шаблонов проектирования

Пример кода: https://github.com/nitinmuteja/GOFDesignPatterns/
Шаблоны проектирования: элементы повторно используемого объектно-ориентированного программного обеспечения (1994), написанная Эрихом Гаммой, Ричардом Хелмом, Ральфом Джонсоном и Джоном Влиссайдсом, представляет собой книгу по разработке программного обеспечения, в которой освещаются возможности и ловушки объектно-ориентированного программирования. Они перечислили 23 классических шаблона проектирования программного обеспечения, которые имеют влияние даже в текущей среде разработки программного обеспечения. Авторов часто называют Бандой четырех (GoF).

23 шаблона дизайна были разделены на 3 вертикали: 1. Креативный- Д
реал с механизмами создания объектов, пытающийся создавать объекты способом, подходящим для ситуации.
2. Структурный — облегчите дизайн, определив простой способ реализации взаимосвязей между сущностями.
выявление общих моделей связи между объектами. 3. Поведенческие- иметь дело с

Шаблоны креативного проектирования
Ниже приведена диаграмма классов одноэлементного класса 1. Singleton- Основной мотив этого шаблона — предоставить один экземпляр объекта нескольким потокам, пытающимся одновременно получить его экземпляр.

Переменная singleton является частной, как и конструктор.
Единственным источником для получения экземпляра является метод getInstance().
2. Фабрика. Задача создания экземпляра для определенного интерфейса предоставляется центральному классу, известному как фабрика. Фабрика может предоставлять различные реализации типа объекта.

Фабрика Creator1 реализует Creator и является фабрикой для создания объектов типа Product. Фабричный метод предоставляет экземпляр типа Product (абстрактный класс). Здесь Creator1 (бетонный завод) предоставляет экземпляр класса Product1 (производного) через factoryMethod().

3. Абстрактная фабрика. Этот шаблон похож на фабрику, но с той разницей, что он объединяет несколько фабрик в одну. Несколько реализаций могут быть извлечены из отдельных методов или из параметра Type, переданного в общий метод фабрики.

Например: BaseType objectInstantiated=factory.GetInstance‹BaseType›();
4. Строитель. Этот шаблон используется для отделения построения сложных объектов от их представления.
Построение отдельных компонентов обеспечивается интерфейсом построителя, а его реализация обеспечивается конкретными классами построителя. Последовательность построения компонентов определяется классом Director.

5. Прототип. Этот шаблон используется для клонирования объектов, учитывая, что процесс создания исходного объекта требует много времени/ресурсов и может быть накладным.

Первоначально опубликовано на https://nitinmuteja.blogspot.com 10 февраля 2019 г.