팩토리 패턴을 사용해 kind에 따라 적절한 Shape 인스턴스를 생성하는 ShapeFactory를 구현하세요.
팩토리 패턴은 객체 생성 로직을 한 곳에 모아, 호출자가 구체 클래스를 직접 알지 않아도 되게 해줍니다.
export interface Shape {
area(): number;
}
export class ShapeFactory {
static create(kind: 'circle' | 'square' | 'triangle', size: number): Shape;
}
circle: area = π * size * sizesquare: area = size * sizetriangle: 정삼각형, area = (√3 / 4) * size * sizeconst s = ShapeFactory.create('square', 3);
s.area(); // 9