Паттерн Factory — это порождающий паттерн, который абстрагирует создание объектов, делегируя его центральной функции или методу. Вместо прямого создания экземпляров классов с помощью new, вызывающий код просто запрашивает объект, а factory решает, какой класс инстанцировать на основе переданных параметров.
Factory-функция принимает параметры и возвращает подходящий экземпляр класса:
class Admin { greet() { return "Hello, Admin"; } }
class Member { greet() { return "Hello, Member"; } }
class Guest { greet() { return "Hello, Guest"; } }
function createUser(type) {
if (type === "admin") return new Admin();
if (type === "member") return new Member();
return new Guest();
}
const user = createUser("admin");
console.log(user.greet()); // "Hello, Admin"
createUser() и никогда не обращается напрямую к Admin, Member или GuestFactory pattern требует от вызывающего кода прямое создание экземпляров классов с помощью new, но функция factory предоставляет удобную обёртку вокруг этого процесса.
Новый — ещё не проверен сообществом
Вы