요약
- 복합 패턴
- 패턴 섞어 쓰기
- 오리 시뮬레이션 게임에 다양한 패턴 적용하기
메모
CHAPTER 12. 패턴을 모아 패턴 만들기 : 복합 패턴
패턴 섞어 쓰기
- 여러 패턴을 함께 사용해서 다양한 디자인 문제를 해결하는 방법을 복합 패턴이라고 부름.
- 복합 패턴이라고 불리려면 여러 가지 문제의 일반적인 해결법을 제시해야 함.
- 반복적으로 생길 수 있는 일반적인 문제를 해결하는 ****용도로 2개 이상의 패턴을 결합해서 사용하는 것을 뜻함.
- 복합 패턴의 왕이라 불리는 모델-뷰-컨트롤러(MVC)를 알아본다.
오리 시뮬레이션 게임에 다양한 패턴 적용하기
- 우선 Quackable 인터페이스를 만듦.
- 모든 Duck 객체에 Qucakable 인터페이스를 구현함.
- 꽥꽥거리는 행동을 구현하는 quack() 메소드를 구현해야 함.
- p529 참고
- Quackable을 구현하는 여러 구체 오리 클래스를 만듦
- 시뮬레이터를 만듦.
- 여러 오리에 대한 작동을 확인함.
- p530 참고
- 시뮬레이터에 거위 객체도 추가함.
- 거위의 어댑터가 필요함
- 거위도 울음소리를 냄.
- 거위는 Quackable 처럼, quack() 메소드가 아닌, honk() 메소드가 필요함.
- 오리 자리에 거위가 들어갈 수 있게 어댑터를 씀.
- p532 참고
- 이제 시뮬레이터에 거위를 추가할 수 있음.
- simulate 메소드에 전달되는 객체 목록에 GooseAdapter로 감싼 Goose 객체를 추가해서 시뮬레이션 할 수 있음.
- 꽥꽥 소리를 낸 횟수를 세 주는 기능을 만드려면 데코레이터를 만들어서 객체들을 그 데코레이터 객체로 감싸면 됨.
- 시뮬레이터를 고쳐서 모든 오리를 데코레이터로 감싸줌.
- p535 참고
- 단, 시뮬레이터에서 데코레이터를 만들어주기 때문에, 오리생성과 데코레이터로 감싸는 부분을 캡슐화해야 함.
- 오리를 생산하는 팩토리가 필요함.
- 팩토리를 쓰도록 시뮬레이터를 고침.
댓글