팩토리메서드란
Factory Pattern은 비슷한 객체를 반복적으로 생성해야 할 경우 사용하는 패턴입니다.
// Step 1: 인터페이스 (또는 추상 클래스) 정의
class Animal {
makeSound() {
throw new Error('This method should be overridden');
}
}
// Step 2: 팩토리 메서드 정의
class AnimalFactory {
createAnimal() {
throw new Error('This method should be overridden');
}
}
// Step 3: 서브 클래스에서 메서드 구현
class Dog extends Animal {
makeSound() {
return 'Bark';
}
}
class DogFactory extends AnimalFactory {
createAnimal() {
return new Dog();
}
}
// Step 4: 클라이언트에서 팩토리 호출
const dogFactory = new DogFactory();
const dog = dogFactory.createAnimal();
console.log(dog.makeSound()); // 출력: "Bark"
- 인터페이스 또는 추상 클래스 정의: 먼저, 생성될 객체의 공통된 특징을 정의하기 위해 인터페이스나 추상 클래스를 만듭니다.
- 팩토리 메서드 정의: 이 메서드는 객체를 생성하는 역할을 합니다. 이 메서드는 일반적으로 추상 메서드로 선언되어 있습니다.
- 서브 클래스에서 메서드 구현: 실제로 객체를 생성하는 코드는 서브 클래스에서 구현됩니다. 각 서브 클래스에서는 자신에게 필요한 구체적인 객체를 생성하는 방법을 구현합니다.
- 클라이언트에서 팩토리 호출: 클라이언트는 팩토리 메서드를 호출하여 필요한 객체를 생성합니다. 클라이언트는 어떤 구체적인 클래스의 인스턴스를 생성할지 명시적으로 지정하지 않아도 됩니다.
'개발' 카테고리의 다른 글
[ 공식문서 ] 공식문서 링크 모으기 (0) | 2023.10.09 |
---|---|
[ 프로젝트 세팅 ] Nest.js + Husky + CommitLint + Gitmoji 세팅 (0) | 2023.09.12 |
[ 디자인 패턴 ] 1.5 싱글톤(Singleton) (0) | 2023.08.30 |
[ 디자인 패턴 ] 디자인 패턴의 개념과 종류 (0) | 2023.08.25 |
[Mongoose] Connections과 srv 레코드 (0) | 2023.03.27 |
댓글