CS/디자인 패턴

팩토리 패턴 (Factory Pattern)

Dahoon06 2023. 9. 11. 11:41
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

 

[디자인 패턴] 팩토리 패턴 종류/개념/예제

이번 포스팅에서는 팩토리 패턴의 개념에 대해 포스팅하고자 한다. 1. 심플 팩토리 패턴 팩토리 패턴에는 팩토리 메소드 패턴, 추상 팩토리 패턴이있다. 이 두가지 패턴을 알기전에 먼저 심플 팩

cjw-awdsd.tistory.com

 

 

 

 


 

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