디자인 패턴 - 구조 패턴(퍼사드 패턴)
퍼사드 패턴
서브 클래스의 통합 인터페이스를 제공하는 패턴입니다.
실제 적용 예시
- 회사의 서비스데스크 라던가, 내부 구조를 모른 상태에서 서비스를 이용하기위해서 통합 인터페이스를 제공하는것을 예시로 들수 있습니다.
class VideoFile {
...
}
class OggCompressionCodec {
...
}
class CodecFactory {
...
}
export class FacadeVideoConverter {
private part1: VideoFile = new VideoFile();
private part2: OggCompressionCodec = new OggCompressionCodec();
private part3: Part3 = new Part3();
public convert(): void {
console.log("`operation1` is called ===");
this.part1.method1();
this.part2.method2();
console.log("==========================");
}
}
언제 사용할까 ?
어떤 기능에 대해서 하위 절차나 구현을 감추고 싶고, 복잡함을 클라이언트입장에선 몰라도 되게 하고 싶을때 사용하세요. 하위 시스템을 계층 구조로 구성하는 경우 좋습니다.
장점
- 쓰는사람(클라이언트)입장에서는 내부 구현의 복잡도를 모르고 사용할수 있습니다.
단점
- 퍼사드앱이 너무 결합도가 높아서 유지보수 하기 힘들수도 있습니다.