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

Теперь, предыдущее предложение может быть трудно понять.

Итак, давайте сделаем это проще и понятнее на простом примере: пицца. 🍕

Хотите пример кода?

Вы можете найти его в конце этой статьи.

Представлять себе..

Вы хотите приготовить разные виды пиццы для своих друзей.
Функция-конструктор похожа на рецепт приготовления одного определенного вида пиццы.
Каждый раз, когда вы используете рецепт, вы будете получать один и тот же тип пиццы. пицца.

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

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

Так что у всех ваших друзей будет уникальная пицца, приготовленная специально для них! Имеет ли это смысл сейчас?

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

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

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

Пример кода:

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.