설명
- 내부 구조를 숨기고 밖에서는 창구 하나만 보이게 만드는 디자인 패턴
- 서비스는 하나의 비즈니스 기능을 담당하고, facade는 여러 서비스들을 조합해서 하나의 시나리오를 처리
- 여러 도메인이 모두 필요한 로직에 주로 사용
예시
- 주문 처리를 위해 필요한 서비스들
UserService
PaymentService
PointService
NotificationService
- 따라서 이 메서드들을 호출해야 함
orderService.createOrder()
paymentService.pay()
pointService.earn()
notificationService.send()
-> facade 를 하나 둬서 facade 안에서 처리하도록 함
OrderFacade.processOrder()