CS/디자인패턴
퍼사드(Facade) 패턴
rkrkrr0101
2024. 7. 20. 23:44
퍼사드패턴은 많은양의 메서드를 한번에 실행시켜야하거나,여러 클래스의 메서드들을 한번에 실행해야할때 묶어서 실행하는 패턴임
즉 클래스가 많으면 클라이언트가 클래스를 전부 생성하고,메서드를 실행시키는게 귀찮으니까,그냥 실행만을 대행하는 클래스를 만든다음,해당클래스를 의존하는식으로 바꾸는거
이건 서브시스템클래스를 캡슐화하는게 아닌,단순히 기능들을 묶어서 사용할수있는 인터페이스만 제공하는거고,만약 필요하다면 서브시스템클래스에 직접 접근할수있음(해당클래스들이 퍼블릭하게 열려있음)
장점은 이걸 사용하면 클라이언트구현과 서브시스템을 분리할수있음(퍼사드만 고치면되니)
어댑터패턴과의 차이점은,
어댑터는 인터페이스를 변경해서 클라이언트에서 필요로하는 인터페이스에 맞추는거고
퍼사드는 어떤 서브시스템에 대한 쓰기편한 인터페이스를 제공하는데에만 있음
즉 퍼사드패턴은
서브시스템에 있는 일련의 인터페이스를 통합인터페이스로 묶는 패턴
고수준 인터페이스가 정의되니 서브시스템을 더 편하게 사용할수 있음
즉 퍼사드패턴은 최소지식원칙을 지키는 패턴임
한 행위를 할때 알아야하는 객체의 수는 작으면 작을수록 좋다는것