파사드(facade) – 디자인패턴 이야기 (Story of design patterns)

드워프의 금광 캐기

금광을 캐기 위해선 3가지 일을 해야한다. 먼저 금광 터널을 뚫어야 하며, 금을 캐야하고 마지막으로 금을 날라야 한다. 이 세가지 작업을 드워프 혼자서 하려면 3단계 업무가 필요하다

  1. 굴파기
  2. 금캐기
  3. 나르기

 

하지만 드워프 1명이서는 하루에 한가지 작업만 할 수 있는데, 하루 일과는 이렇다.

  1. 일어나기
  2. 광산으로 이동
  3. 일하기
  4. 집에가기
  5. 잠자기

 

파사드는 드워프들의 고용주이며, 귀차니즘이 심해서 하루의 시작과 끝을 알리는 일과 금을 캐라라는 3가지 명령만 하려고 한다.

  1. 하루 시작
  2. 일해
  3. 하루 끝

 

파사드는 3명의 드워프를 고용해 각각의 역할을 부여했다. 각자 역할을 아는 드워프들은 일하기시간에 알아서 자신의 일을 할 수 있다. 파사드는 일꾼들에게 사전 교육을 진행한다(-makeActions). 하루 시작을 알리면 1 일어나기, 2 광산으로 이동 을 하도록 한다. 일해라고 명령하면 3 일하기 업무에 따라 각자 자신의 역할에 맞는 일을 시작한다. 하루가 끝나면 4 집에가기, 5 잠자기를 하도록 한다.

이제 파사드는 3가지 명령만으로 3 종류의 각기 다른 작업을 5 단계에 하루 일과에 맞춰 진행할 수 있게 되었다. 파사드 만세!

 

facade.png

https://github.com/iluwatar/java-design-patterns/tree/master/facade

 

Leave a comment