본문으로 바로가기

8. Facade Pattern

category Design Pattern/Head FIrst Design Pattern 2019. 5. 25. 17:58

8 Facade Pattern(퍼사드 패턴)


8.1 Facade Pattern 이란

Facade Pattern을 사용하는 목적은 단순합니다. 서브 시스템 클래스들을 통합해 더 쉽게 사용하기 위함이죠.

- Facade class는 서브 시스템 클래스들의 reference를 가집니다.


8.2 HomeTheaterFacade

간단한 예를 통해 Facade Pattern의 사용 목적을 보여드리겠습니다.

영화를 보기위해선(하나의 시스템) 프로젝터, DVD 플레이어, 영화관 조명, 스크린(서브 시스템)이 필요하죠.

이런 서브시스템들을 하나하나 조작해야한다면 번거로울 겁니다. 서브시스템들을 통합해서 한번에 조작할 수 있도록 해보죠.


영화를 보기위해서는 

전등을 켜고 lights.on();

스크린을 내린 뒤         screan.down();

프로젝트를 켜고 projector.on();

Dvd를 켜고 dvd.on();

재생시켜야한다. dvd.play();

 

 이러한 복잡한 과정을 Facade로 감싸서 단순화 시킨다.

 

  theaterFacade.watchMovie();


8.2.1 Sub System class

서브 시스템 클래스들입니다. 이 서브 시스템들이 맞물려서 하나의 시스템을 구성하죠.


8.2.2 Facade class

서브 시스템 클래스들을 통합해줄 Facade class입니다.

일련의 과정을 단순화하여 쉽게 사용할 수 있도록 해주죠.


8.2.3 Driver class

실행을 위한 클라이언트 클래스입니다.


'Design Pattern > Head FIrst Design Pattern' 카테고리의 다른 글

9. Template Method Pattern  (0) 2019.05.31
7. Adaptor Pattern  (0) 2019.05.23
6. Command Pattern  (0) 2019.05.20
4. Factory Pattern - (1) SImple Factory  (0) 2019.04.21
3. Decorator Pattern  (0) 2019.04.21