[TYPESCRIPT] 타입스크립트 디자인 패턴 - Factory

Factory Pattern

The factory pattern is one of the creational software design patterns.

Creational: 오브젝트의 생성을 다루는

이점

  1. 객체 생성 프로세스가 복잡한 상황이나 동일한 속성을 공유하는 여러 객체가 생성되는 상황에서 사용될 수 있습니다.

예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// mavelfactory.ts
export class MavelFactory {
private name: string;
private power: number;

constructor(name: string, power: number) {
this.name = name;
this.power = power;
}

introduce() {
console.log(`Hello, I am ${this.name}.`);
}
}

export function createHero(name: string, power: number) {
return new HeroFactory(name, power);
}

실행

1
2
3
4
5
6
7
8
// app.ts
import * as mavelfactory from './mavelfactory';

const spiderman = heroFactory.createHero('Peter', 100);
spiderman.introduce();

const ironman = heroFactory.createHero('Stark', 100);
ironman.introduce();