Ответ
Паттерн Factory — это порождающий шаблон проектирования, который предоставляет интерфейс для создания объектов, но делегирует выбор их типа подклассам или фабричным методам. Он помогает инкапсулировать логику создания объектов, делая код более гибким и расширяемым.
Пример с кодом:
class Car {
constructor(model, price) {
this.model = model;
this.price = price;
}
}
class CarFactory {
create(type) {
switch(type) {
case 'Audi': return new Car('Audi', 50000);
case 'BMW': return new Car('BMW', 60000);
default: throw new Error('Unknown car type');
}
}
}
const factory = new CarFactory();
const bmw = factory.create('BMW'); // Car { model: 'BMW', price: 60000 }
Основные преимущества:
- Изоляция кода создания объектов
- Гибкость при добавлении новых типов
- Упрощение поддержки кода