💡 디자인 패턴
이란?
💡 팩토리 패턴 (factory pattern)
이란?
🔗 자바스크립트 팩토리 패턴
👉 자바스크립스의 new Object로 전달받은 값에 따라 다른 객체 생성
const num = new Object(42)
const str = new Object('abc')
num.constructor.name; // Number
num.constructor.name; // String
⭐️ 팩토리 패턴 활용 자바스크립트 예시 코드
class Latte{
constructor(){
this.name = "latte"
}
}
class Espresso{
constructor(){
this.name = "Espresso"
}
}
class LatteFactory{
static createCoffee(){
return new Latte()
}
}
class EspressoFactory{
static createCoffee(){
return new Espresso()
}
}
const factoryList = {LatteFactory,EspressoFactory}
class CoffeeFactory{
static createCoffee(type){
const factory = factoryList[type]
return factory.createCoffee()
}
}
const main = () => {
// 라떼 커피를 주문
const coffee = CoffeeFactory.createCoffee("LatteFactory")
// 커피 이름을 부름
console.log(coffee.name) // latte
}
의존성 주입
으로도 볼 수 있음🔗 팩토리 패턴 활용 자바 예시 코드
abstract class Coffee{
public abstract int getPrice();
@Override
public String toString(){
return "Hi this coffee is " + this.getPrice();
}
}
class CoffeeFactory{
public static Coffee getCoffee(String type, int price){
if("Latte".equalsIgnore(type)) return new Latte(price);
else if("Americano".equalsIgnore(type)) return new Americano(price);
else return new DefaultCoffee();
}
}