Façade

금융 거래 시스템에서 콘솔이 퍼사드에 해당한다.
(콘솔 내부에 많은 수의 서로 다른 객체들이 동작한다.)
struct Console{
vector<Viewport*> viewports;
Size charSize, gridSize;
// ...
}; // API
Console::Console(bool fullscreen, int char_width, int char_height, int width, int height, optional<Size> client_size){
// viewports
//
//
}
//
Console::Console(const ConsoleCreationParameters& ccp){
// ...
}
struct ConsoleCreationParameters{
optional<Size> client_size;
int character_width{10};
int character_height{14};
int width{20};
int height{30};
bool fullscreen{false};
bool create_default_view_and_buffer{true};
};
퍼사드 디자인 패턴은 하나 이상의 복잡한 서브 시스템 앞에 단순한 인터페이스를 두기 위한 방법이다.
(다수의 버퍼와 다수의 뷰포트가 연동되는 복잡한 콘솔을 편리하고 직관적인 API로 이용