파사드 패턴
여러 요소들로 복잡하게 구성된 시스템을 하나의 창구로 간단하게 사용할 수 있도록 해주는 패턴
인터페이스를 단순하게 변경해서 쉽게 사용하기 위함
서브시스템에 있는 일련의 인터페이스를 통합 인터페이스로 묶어주는 역할
파사드를 사용하면 클라이언트 구현(사용하는 부분)과 서브시스템(로직)을 분리 할 수 있다.
클라이언트는 서브시스템의 내부 구현에 대해 자세히 알 필요가 없어짐
파사드의 통합되고 단순한 인터페이스를 통해 필요한 기능을 수행하면됨
서브시스템의 사용법이 변경되더라도 클라이언트 코드가 아닌 파사드 코드만 변경하면 되므로 유연성 향상됨
1. 서브시스템 클래스
여러 기능으로 나뉘어진 클래스들을 각각 클라이언트에서 사용하는것은 번거로운 일
class FileReader {
async readFile(filePath: string): string {}
}
class FileWriter {
async writeFile(filePath: string, content: string): void {}
}
class FileDeleter {
async deleteFile(filePath: string): void {}
}2. 파사드 클래스
여러 서브시스템을 통합해서 하나의 클래스로 다루는 파사드
※ 파사드가 서브시스템의 생성 책임까지 맡아서도 가능
3. 클라이언트 코드
서브시스템의 클래스는 전혀 사용하지 않고, 파사드 클래스만 사용되어 간단해짐
Last updated