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

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

class FlavouredShakesFactory {
constructor() {
this.createShakes = function(flavor) {
let Shake;
if (flavor === 'chocolate'){
Shake = new Chocolate();
}
else if (flavor === 'mango'){
Shake = new Mango();
}
else if (flavor === 'strawberry'){
Shake = new Strawberry();
}
return Shake;
};
}
}
class Chocolate {
constructor() {
this.shakeFlavor = "chocolate";
this.message = function() {
return `You chose the ${this.shakeFlavor} flavor.`;
};
}
}
class Mango {
constructor() {
this.shakeFlavor = "mango";
this.message = function() {
return `You chose the ${this.shakeFlavor} flavor.`;
};
}
}
class Strawberry{
constructor() {
this.shakeFlavor = "strawberry";
this.message = function() {
return `You chose the ${this.shakeFlavor} flavor.`;
};
}
}
// creating objects
const flavouredShakesfactory = new FlavouredShakesFactory();
const chocolate = flavouredShakesfactory.createShakes('chocolate');
const mango = flavouredShakesfactory.createShakes('mango');
const strawberry = flavouredShakesfactory.createShakes('strawberry');
console.log(chocolate.message());
console.log(mango.message());
console.log(strawberry.message());

В приведенном выше примере мы создали фабрику FlavouredShakesFactory. В его конструкторе есть функция createShakes, принимающая параметр flavor. В зависимости от разновидности он создает экземпляр объекта соответствующего класса. Например, если вкус шоколада, он создает объект класса Chocolate. То же самое, если вкус манго или клубники.

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

Первоначально опубликовано на https://studysection.com 23 февраля 2022 г.