팩토리패턴이란, 상위클래스에서 중요한 뼈대만을 결정하고,
하위클래스에서는 객체 생성에 관한 구체적 로직을 담는 디자인패턴입니다.
상위클래스에서는 객체 생성에 관한 구체적 로직을 알 필요가 없으므로 유연성이 증가하고
문제가 생기는 부분만 고치면 되므로 유지보수성이 올라가는 장점이 있습니다.
class CoffeeFactory {
static createCoffee(type) {
const factory = factoryList[type]
return factory.createCoffee() }
}
class Latte {
constructor() { this.name = "latte"
} }
class Espresso { constructor() {
this.name = "Espresso" }
}
class LatteFactory extends CoffeeFactory{
static createCoffee() {
return new Latte()
}
}
class EspressoFactory extends CoffeeFactory{
static createCoffee() {
return new Espresso()
}
}
const factoryList = { LatteFactory, EspressoFactory }
const main = () => {
// 라떼 커피를 주문한다.
const coffee = CoffeeFactory.createCoffee("LatteFactory") // 커피 이름을 부른다.
console.log(coffee.name) // latte
}
main()