Шаблоны проектирования делают вашу программу более гибкой, многоразовой и поддерживаемой. Он представляет собой передовой опыт, выработанный опытными разработчиками программного обеспечения в течение длительного периода путем проб и ошибок.

Шаблоны проектирования делятся на 3 типа.

  1. Творческий шаблон дизайна
  2. Структурный шаблон проектирования
  3. Шаблон поведенческого дизайна

Это первая часть серии, в которой будет продемонстрирован наиболее часто используемый шаблон творческого дизайна.

Шаблон заводского метода:

В шаблоне фабрики или шаблоне фабричного метода говорится, что просто определяют интерфейс или абстрактный класс для создания объекта, но позволяют подклассам решать, какой класс создавать. Другими словами, подклассы несут ответственность за создание экземпляра объекта. класс.

Шаблон фабричного метода также известен как виртуальный конструктор.

Преимущество заводского шаблона дизайна

  • Factory Method Pattern позволяет подклассам выбирать тип создаваемых объектов.
  • Он способствует слабой связи, устраняя необходимость связывать классы, специфичные для приложения, в коде. Это означает, что код взаимодействует исключительно с результирующим интерфейсом или абстрактным классом, так что он будет работать с любыми классами, реализующими этот интерфейс или расширяющими этот абстрактный класс.

Использование шаблона Factory Design

  • Когда класс не знает, какие подклассы потребуются для создания
  • Когда класс хочет, чтобы его подклассы указывали создаваемые объекты.
  • Когда родительские классы выбирают создание объектов для своих подклассов.

Пример: предположим, вы хотите создать систему, которая повторно рассчитывает стоимость производства бренда колы на основе некоторых изменений стоимости (триггеров).

  1. создать интерфейс / абстрактный класс для создания объекта

2. классы, реализующие вышеуказанный интерфейс

3. Заводской класс, возвращающий желаемый объект.

Шаблон абстрактного фабричного метода:

В шаблоне абстрактной фабрики говорится, что просто определите интерфейс или абстрактный класс для создания семейств связанных (или зависимых) объектов, но без указания их конкретных подклассов. Это означает, что абстрактная фабрика позволяет классу возвращать фабрику классов . Вот почему абстрактный фабричный шаблон на один уровень выше, чем фабричный.

Шаблон абстрактной фабрики также известен как комплект.

Преимущество паттерна абстрактной фабрики

  • Абстрактный заводской шаблон изолирует клиентский код от конкретных (реализационных) классов.
  • Это упрощает обмен семейством объектов.
  • Это способствует согласованности между объектами.

Использование паттерна абстрактная фабрика

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

ПРИМЕР

Теперь предположим, что пересчет стоимости отличается в зависимости от местоположения.

1. Абстрактный класс EventAbstractFactory, расширенный EventTriggersDataFactory и IndiaEventTriggersDataFactory.

2. Создайте класс IndiaEventTriggersDataFactory, аналогичный EventTriggersDataFactory.

3. Создайте класс генератора / производителя Factory, чтобы получить фабрики, передав часть информации, например местоположение.

Шаблон Singleton:

Шаблон Singleton гласит, что просто «определите класс, который имеет только один экземпляр и обеспечивает глобальную точку доступа к нему».

Здесь класс должен гарантировать, что должен быть создан только один экземпляр, а один объект может использоваться всеми другими классами.

Существует две формы одноэлементного шаблона проектирования:

  • Раннее создание: создание экземпляра во время загрузки.
  • Ленивое создание: создание экземпляра при необходимости.

Преимущество шаблона проектирования Singleton

  • Экономит память, потому что объект не создается при каждом запросе. Только один экземпляр используется снова и снова.

Использование шаблона проектирования Singleton

  • Шаблон Singleton в основном используется в многопоточных приложениях и приложениях для баз данных. Он используется в журналах, кешировании, пулах потоков, настройках конфигурации и т. Д.

Uml шаблона проектирования Singleton

Как создать шаблон проектирования Singleton?

Чтобы создать одноэлементный класс, нам нужен статический член класса, частный конструктор и статический фабричный метод.

  • Статический член: он получает память только один раз из-за статики, он содержит экземпляр класса Singleton.
  • Частный конструктор: он предотвратит создание экземпляра класса Singleton извне.
  • Статический фабричный метод: он обеспечивает глобальную точку доступа к объекту Singleton и возвращает экземпляр вызывающей стороне.

Понимание раннего создания одноэлементного паттерна

В таком случае мы создаем экземпляр класса во время объявления статического члена данных, поэтому экземпляр класса создается во время загрузки класса.

Понимание ленивого создания одноэлементного паттерна

В таком случае мы создаем экземпляр класса в синхронизированном методе или синхронизированном блоке, поэтому экземпляр класса создается при необходимости.

Давайте посмотрим на простой пример одноэлементного шаблона проектирования с использованием ленивого создания экземпляров.

Это наиболее часто используемые шаблоны творческого проектирования. В частях 2 и 3 этой серии будут представлены шаблоны структурного и поведенческого проектирования.