728x90
반응형
객체를 사용하는 코드에서 객체 생성 부분을 떼어내어 추상화한 팬턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스 에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴
- 팩토리 메소드 패턴
- 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 하위 클래스에서 결정
(즉, 클래스 인스턴스 생성은 하위 클래스에게 맡기는 것)
- 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 하위 클래스에서 결정
- 추상 팩토리 패턴
- 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성
(new 지시자를 사용하여 구상 클래스를 만드는 것)
- 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체를 구상 클래스를 지정하지 않고도 생성
자바스크립트에서의 팩토리 패턴
const factory1 = new Object(10);
const factory2 = new Object('전다훈');
factory1.constructor.name // Number;
factory2.constructor.name // String;
어떤 값을 전달하느냐에 따라 다른 타입의 객체가 생성됨
class Espresso {
private name: string;
constructor() {
this.name = 'Espresso';
}
}
class Latte {
private name: string;
constructor() {
this.name = 'Latte';
}
}
class EspressoFactory {
static createCoffee() {
return new Espresso();
}
}
class LatteFactory {
static createCoffee() {
return new Latte();
}
}
export const factoryList = { EspressoFactory, LatteFactory }
/*==============================================================*/
class CoffeeFactory {
static createCoffee(type: string) {
const factory = factoryList[type];
return factory.createCoffe();
}
}
const main = (): void => {
const coffee = CoffeeFactory.createCoffee('EspressoFactory');
console.log(coffee.name) // Espresso
}
1. CoffeeFacotry 라는 상위 클래스가 뼈대를 결정
2. 하위 클래스인 EspressoFactory가 구체적인 내용을 결정
Reference
https://cjw-awdsd.tistory.com/54
728x90
반응형
'CS > 디자인 패턴' 카테고리의 다른 글
선언형과 함수형 프로그래밍 (0) | 2023.09.11 |
---|---|
MVVM 패턴 (0) | 2023.09.11 |
옵저버 패턴 (Observer Pattern) (0) | 2023.09.11 |
전략 패턴 (Strategy Pattern) (0) | 2023.09.11 |
싱글톤 (Singleton Pattern) (0) | 2023.09.11 |