Что такое паттерн Фабрика и как он используется?
Паттерн Фабрика (Factory Pattern) — это один из паттернов проектирования, который используется для создания объектов. Он позволяет создавать объекты не указывая точно класс создаваемого объекта, а полагаясь на интерфейс или абстрактный класс, который определяет общий способ инициализации объектов.
Зачем использовать паттерн Фабрики?
Пример реализации паттерна Фабрик в JavaScript
Рассмотрим пример реализации паттерна Фабрики на JavaScript. Пусть у нас есть два типа автомобилей: Sedan
и SUV
.
// Интерфейс автомобиля
class Car {
drive() {
throw "Method not implemented";
}
}
// Реализация для Sedan
class Sedan extends Car {
drive() {
console.log("Driving a sedan.");
}
}
// Реализация для SUV
class SUV extends Car {
drive() {
console.log("Driving an SUV.");
}
}
// Фабрика для создания автомобилей
class CarFactory {
createCar(type) {
switch (type) {
case 'sedan':
return new Sedan();
case 'suv':
return new SUV();
default:
throw "Unknown car type";
}
}
}
// Использование Фабрики
const factory = new CarFactory();
const sedan = factory.createCar('sedan');
sedan.drive(); // "Driving a sedan."
const suv = factory.createCar('suv');
suv.drive(); // "Driving an SUV."
// Если попробуем создать автомобиль другого типа
// const unknownCar = factory.createCar('truck'); // выбросит ошибку
Объяснение кода:
drive
, который будет реализован в других классах.drive
.createCar
, который принимает тип автомобиля и возвращает соответствующий объект.CarFactory
и используем его для создания различных типов автомобилей, не заботясь о том, как они реализованы.Заключение
Паттерн Фабрика — мощный инструмент для создания объектов в JavaScript. Он делает ваш код более чистым, модульным и тестируемым, что особенно важно при работе над большими проектах. Использование этого паттерна помогает упростить изменения и поддержки вашего кода в будущем.