10. 퍼사드 패턴 (Facade)
복잡한 내부 시스템을 숨기고 단순화된 단일 창구를 제공하는 퍼사드 패턴을 알아봅니다.
영화관에 가서 영화를 보려면 에어컨도 켜야 하고, 조명도 어둡게 하고, 스크린도 내리고, 영사기도 켜야 하죠? 이 모든 복잡한 과정들을 ‘영화보기’ 버튼 하나로 묶어주는 것이 바로 퍼사드(Facade, 건물의 정면 외관) 패턴이에요. 사용자는 내부의 복잡한 시스템을 알 필요 없이 묶여있는 버튼만 누르면 돼요!
(참고: 각각의 복잡한 시스템들입니다)
[에어컨]을 설계하자:
<켜기>를 만들자 ():
"에어컨 바람 슝슝~"을 출력하자
[조명]을 설계하자:
<어둡게하기>를 만들자 ():
"조명을 영화관처럼 어둡게 합니다."를 출력하자
[티비]를 설계하자:
<넷플릭스켜기>를 만들자 ():
"넷플릭스를 실행합니다 둥-둥!"을 출력하자
(참고: 시스템들을 모아서 단순한 버튼 하나를 제공해요)
[홈시어터]를 설계하자:
'에어컨'을 [에어컨]인 새로운 [에어컨]()으로 정하여 숨기자
'조명'을 [조명]인 새로운 [조명]()으로 정하여 숨기자
'티비'를 [티비]인 새로운 [티비]()로 정하여 숨기자
<영화보기>를 만들자 ():
"--- 영화 볼 준비를 시작합니다 ---"를 출력하자
'나'의 '에어컨'의 <켜기>()를 실행하자
'나'의 '조명'의 <어둡게하기>()를 실행하자
'나'의 '티비'의 <넷플릭스켜기>()를 실행하자
"준비 완료! 팝콘을 가져오세요!"를 출력하자
'우리집'을 [홈시어터]인 새로운 [홈시어터]()로 정하자
'우리집'의 <영화보기>()를 실행하자