Паттерны в разработке приложений. Порождающие паттерны

Tags: programming , программирование , pattern , паттерны

Published 22 января 2021 г. 20:25

Итак, сегодня мы начнём разбирать группы паттернов более детально и начнём с порождающих паттернов. Цель их применения в разработке - абстрагирование порождения классов и объектов.

Данная группа шаблонов довольно немногочисленна и вот список наших созидательных товарищей:

  1. Фабричный метод (Factory method)
  2. Абстрактная фабрика (Abstract factory)
  3. Строитель (Builder)
  4. Одиночка (Singlton)
  5. Прототип (Prototype)
     

Фабричный метод

Начнем с фабричного метода. Важно понять, что абстрактная фабрика и фабричный метод хоть и имеют нечто общее в названиях, однако предназначены они для различных целей. Фабричный метод используется для порождения классов, а абстрактная фабрика - для создания объектов. Суть фабричного метода заключается в следующем: 

Реализовать интерфейс для создания объекта, но делегировать подклассам решение, какой класс необходимо создать.

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

Абстрактная фабрика

Переходим к абстрактной фабрике. Данный шаблон позволяет создавать семейства связных объектов, не привязываясь к классам конкретных объектов. По сути, это, как верно подмечено в этой статье фабрика фабрик. Кстати, указанная статья содержит пример с кодом, поэтому настоятельно рекомендуема к прочтению :-).

 Строитель

Следующий паттерн, позволяющий создавать сложные объекты - Строитель. Данный шаблон применяется при создании сложных объектов, состоящих из нескольких частей. С его помощью можно разделить создание объекта на несколько частей, что позволяет создавать сложные объекты, не используя огромный список параметров. Здесь можно пример с заказом бутерброда (саба) в Subway. Есть какая-то основа (булочка), на неё кладут различные продукты (сыр, бекон, салат и т д.) по вашему выбору. В итоге мы получаем наш вкусный саб, в процессе создания которого мы сами выбирали его элементы. Здесь также есть материалы по данному шаблону с примерами кода.

Одиночка (Singlton)

Наш следующий гость - Одиночка. Название данного шаблона говорит само за себя. Он позволяет создать единственный экземпляр класса и гарантирует, что в процессе работы программы он таковым и останется (как бы грустно это не звучало). 

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

Прототип

Представьте, что вам нужно создать армию клонов (приветствую фанатов Звездных Войн :-)), но вы не хотите знать подробности создания каждого из них. В этом случае вам пригодится шаблон Прототип. Он позволит вам создавать копии объектов, не вдаваясь в подробности их реализации.

Этот популярный ресурс подробно рассматривает реализацию и примеры применения шаблона с исходным кодом. И ещё один  ресурс для закрепления.

 

Итак, сегодня мы познакомились с порождающими паттернами, узнали, в каких случая возможно их применение и ознакомились с реализацией данных шаблонов в коде. В следующих публикациях будут разобраны структурные и поведенческие паттерны. Попробуйте использовать эти паттерны в своих программах и оцените, как изменились гибкость и расширяемость ваших творений :-).


Похожие публикации

Паттерны в разработке приложений

Паттерны в разработке приложений. Поведенческие паттерны. Часть 2.

Паттерны в разработке приложений. Поведенческие паттерны. Часть 1.

Паттерны в разработке приложений. Структурные паттерны