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

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

Паттерны проектирования в основном можно разделить на три большие категории:

1. Шаблон творческого дизайна

2. Структурный образец проектирования

3. Шаблон поведенческого дизайна

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

Что такое шаблоны творческого дизайна?

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

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

Типы творческих паттернов

1. Синглтон

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

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

2. Образец прототипа

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

Допустим, есть два покупателя, Алекс и Ева.

И Алекс, и Ева - разведчики, и у них будут общие товары для покупок, такие как походный нож, палатка, рюкзак и карта. Вместо того, чтобы создавать два объекта Shopper и добавлять в каждый из них следующие элементы, давайте создадим прототип скаута.

Теперь создадим Алекса и Еву, используя прототип разведчика:

Теперь код стал намного более управляемым, и мы также устранили избыточность и сэкономили время разработки. Если вас интересует метод clone, мы можем реализовать его в классе Shopper, используя JavaScript прототипное наследование. Взгляните на Shopper Class и метод клонирования.

3. Шаблон "Строитель"

Шаблоны Builder помогают в создании или построении сложных объектов в более простой и удобочитаемой форме, используя пошаговый подход. Этот шаблон решит проблему читабельности кода в Node JS.

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

Давайте попробуем создать объект Person с помощью конструктора класса Person.

Разработчику трудно сказать, что означают аргументы, не заходя в класс Person и не проверяя соответствующие свойства класса.

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

PersonBuilder внутренне использует класс Person и возвращает объект Person, когда метод сборки вызывается для объекта personbuilder.

Чтобы ознакомиться с полным кодом, посетите это репозиторий GitHub.