Недавно я узнал о шаблоне проектирования конструктора и считаю, что этот шаблон решит проблему читабельности кода в Node JS. В этом блоге я упомянул проблему и ее решение.

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

Например, предположим, что у вас есть класс Person, и у этого класса есть конструктор с 7 аргументами (скажем, аргументы: UID, имя, возраст, адрес, дата рождения, образование, phone_number).

Если вы хотите создать объект человека из класса Person, код будет выглядеть так:

var person = new Person («UID_123», «Сараванан АР», «25», «Индия», «1994», «B.Tech», «00000»);

Код выглядит хорошо, и его можно поддерживать в долгосрочной перспективе?

Мы можем сделать эти коды более удобочитаемыми и удобными в обслуживании с помощью шаблона проектирования Строитель.

Для этого создайте отдельный метод класса для каждого аргумента в конструкторе, и все методы должны возвращать this.

Например, в приведенном ниже фрагменте кода мы определяем метод setName () с аргументом name. Задача этого метода - присвоить аргумент name свойству name объекта. (this.name = имя)

Точно так же мы должны создать отдельный метод для всех остальных аргументов конструктора.

Окончательный код для класса Person будет выглядеть так:

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

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

Сравнение:

Пришло время сравнить оба дизайна. К концу вы узнаете, насколько шаблон проектирования компоновщика решает нашу проблему.

а) Полное создание объекта:
Код для создания объекта со всеми аргументами.

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

Используя шаблон построителя (рис. F), здесь у нас больше контроля над аргументами, он легко читается и прост в обслуживании.

б) Частичное создание объекта (создание объекта с некоторыми аргументами):

Код для создания объекта с некоторыми аргументами.

Используя обычный способ (рис. G), здесь мы создали объект без возраста, адреса и свойства DOB. Таким образом, код выглядит некрасиво, потому что мы должны передать либо undefined, либо null в качестве значения для этих параметров (возраст, адрес и DOB).

Используя шаблон проектирования Builder (рис. H), здесь нам не нужно заботиться о свойствах, которые нам не нужны. Мы не передали undefined или null для исключения определенного свойства, как это было при обычном способе создания.

На рис. H мы создали объект без свойств возраста, адреса и DOB.

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