[typescript] 팩토리 메서드 패턴과 타입스크립트의 결합 사례
소개
팩토리 메서드 패턴은 객체를 생성하기 위한 디자인 패턴 중 하나로, 객체 생성을 서브 클래스에 위임하여 객체의 유형을 결정하는 방법을 정의합니다. 타입스크립트로 작성된 프로젝트에서 이 패턴을 활용하면 객체 생성과 관련된 로직을 캡슐화하고 재사용성을 높일 수 있습니다.
팩토리 메서드 패턴의 장점
팩토리 메서드 패턴은 객체 생성 로직을 캡슐화하여 유지보수성을 향상시키고 의존성을 줄입니다. 또한 서브 클래스를 통해 객체의 유형을 결정할 수 있어 확장성을 가진 설계가 가능합니다.
타입스크립트를 활용한 팩토리 메서드 패턴 구현
abstract class Product {
abstract create(): void;
}
class ConcreteProduct1 extends Product {
create() {
console.log("Creating ConcreteProduct1");
}
}
class ConcreteProduct2 extends Product {
create() {
console.log("Creating ConcreteProduct2");
}
}
abstract class Creator {
abstract factoryMethod(): Product;
someOperation() {
const product = this.factoryMethod();
console.log("Executing someOperation with", product);
}
}
class ConcreteCreator1 extends Creator {
factoryMethod(): Product {
return new ConcreteProduct1();
}
}
class ConcreteCreator2 extends Creator {
factoryMethod(): Product {
return new ConcreteProduct2();
}
}
const creator1 = new ConcreteCreator1();
creator1.someOperation(); // Output: Creating ConcreteProduct1, Executing someOperation with ConcreteProduct1
const creator2 = new ConcreteCreator2();
creator2.someOperation(); // Output: Creating ConcreteProduct2, Executing someOperation with ConcreteProduct2
위 예제는 타입스크립트로 팩토리 메서드 패턴을 구현한 것입니다. Product
와 Creator
추상 클래스를 정의하고, 서브 클래스에서 각각의 팩토리 메서드를 구현하여 객체 생성을 위임하고 있습니다.
결론
타입스크립트를 활용하여 팩토리 메서드 패턴을 구현하면 객체 생성과 관련된 로직을 쉽게 관리할 수 있고, 유연하고 확장 가능한 코드를 작성할 수 있습니다. 따라서 프로젝트의 요구사항에 맞게 이러한 디자인 패턴들을 적절히 활용하여 보다 효율적인 소프트웨어를 개발할 수 있습니다.