본문 바로가기
컴퓨터과학/디자인패턴

[디자인패턴] 퍼사드 패턴 (Facade Pattern)

by 윤호 2021. 12. 5.

목적

서브 시스템을 쉽게 사용할 수 있도록 해주는 고급 수준의 인터페이스를 정의

요소

문제 : 서브시스템이 너무 많고 사용하기가 복잡함

해결 : 단순한 인터페이스를 제공하는 객체를 중간에 넣음

결과 : 최소 지식 원칙에 입각해 의존성 최소화

정의

 

다음과 같은 watchMovie 메소드를 갖는 Facade 클래스를 만들어서 사용한다.

Facade 클래스는 여러 인터페이스를 가져다 씀.

영화를 보기위해 여러 인터페이스를 조작해야하지만, Facade 클래스로 watchMovie 메소드만 실행하여 단순화 할 수 있음.

    public void watchMovie(String movie) {
        System.out.println("Get ready to watch a movie...");
        popper.on();
        popper.pop();
        lights.dim(10);
        screen.down();
        projector.on();
        projector.wideScreenMode();
        amp.on();
        amp.setDvd(dvd);
        amp.setVolume(5);
        dvd.on();
        dvd.play(movie);
    }

reference : 상명대학교 조용주 교수님 고급객체지향프로그래밍

댓글