에릭 프리먼 님의 "헤드퍼스트 디자인 패턴" 책을 정리한 포스팅 입니다
1. 퍼사드 패턴
- 서브시스템의 기능을 통합 인터페이스로 묶어줌
- 여러개의 인터페이스들을 하나로 통합함
- 인터페이스를 단순하게 바꾸려 함이 목적
2. 홈시어터 퍼사드
public class HomeTheaterFacade {
Amplifier amp;
Tuner tuner;
StreamingPlayer player;
Projector projector;
TheaterLights lights;
Screen screen;
PopcornPopper popper;
public void watchMovie(String movie) {
popper.on();
popper.pop();
lights.dim(10);
screen.down();
projector.on();
projector.wideScreenMode();
amp.on();
amp.setStreamingPlayer(player);
amp.setVolumne(5);
player.on();
player.play(movie);
}
}
3. 최소 지식 원리
- 객체 사이의 상호작용은 가까운 사이에만 이루어지도록
- 메서드 체이닝 피하기
- 정보 은닉 강화
장점
- 결합도 감소
- 코드 재사용성 향상
- 유지보수성 향상
예시
외부에서 객체 내부에 직접 접근 X
Order order = customer.getOrder();
order.getItem().doSomething();
customer.processOrder();
헬퍼 객체 활용하기
- 메서드가 여러 객체와 직접 상호작용 X
- 헬퍼 객체를 통해 간접적으로 작업 처리
'Java > Design Pattern' 카테고리의 다른 글
[헤드퍼스트 디자인 패턴] 9-1. 반복자 패턴 (0) | 2024.12.18 |
---|---|
[헤드퍼스트 디자인 패턴] 8. 템플릿 메서드 패턴 (0) | 2024.12.18 |
[헤드퍼스트 디자인 패턴] 7-1. 커맨드 패턴 (0) | 2024.12.17 |
[헤드퍼스트 디자인 패턴] 6. 커맨드 패턴 (0) | 2024.12.17 |
[헤드퍼스트 디자인 패턴] 5. 싱글턴 패턴 (1) | 2024.12.16 |