책너두 (헤드 퍼스트 디자인 패턴) 40일차 (~539p)

요약

  • 복합 패턴
    • 패턴 섞어 쓰기
    • 오리 시뮬레이션 게임에 다양한 패턴 적용하기

메모

CHAPTER 12. 패턴을 모아 패턴 만들기 : 복합 패턴

패턴 섞어 쓰기

  • 여러 패턴을 함께 사용해서 다양한 디자인 문제를 해결하는 방법을 복합 패턴이라고 부름.
  • 복합 패턴이라고 불리려면 여러 가지 문제의 일반적인 해결법을 제시해야 함.
    • 반복적으로 생길 수 있는 일반적인 문제를 해결하는 ****용도로 2개 이상의 패턴을 결합해서 사용하는 것을 뜻함.
  • 복합 패턴의 왕이라 불리는 모델-뷰-컨트롤러(MVC)를 알아본다.

오리 시뮬레이션 게임에 다양한 패턴 적용하기

  1. 우선 Quackable 인터페이스를 만듦.
    • 모든 Duck 객체에 Qucakable 인터페이스를 구현함.
    • 꽥꽥거리는 행동을 구현하는 quack() 메소드를 구현해야 함.
    • p529 참고
  2. Quackable을 구현하는 여러 구체 오리 클래스를 만듦
    • p529 참고
  3. 시뮬레이터를 만듦.
    • 여러 오리에 대한 작동을 확인함.
    • p530 참고
  4. 시뮬레이터에 거위 객체도 추가함.
  5. 거위의 어댑터가 필요함
    • 거위도 울음소리를 냄.
    • 거위는 Quackable 처럼, quack() 메소드가 아닌, honk() 메소드가 필요함.
    • 오리 자리에 거위가 들어갈 수 있게 어댑터를 씀.
    • p532 참고
  6. 이제 시뮬레이터에 거위를 추가할 수 있음.
  7. simulate 메소드에 전달되는 객체 목록에 GooseAdapter로 감싼 Goose 객체를 추가해서 시뮬레이션 할 수 있음.
  8. 꽥꽥 소리를 낸 횟수를 세 주는 기능을 만드려면 데코레이터를 만들어서 객체들을 그 데코레이터 객체로 감싸면 됨.
    • p534 참고
  9. 시뮬레이터를 고쳐서 모든 오리를 데코레이터로 감싸줌.
    • p535 참고
    • 단, 시뮬레이터에서 데코레이터를 만들어주기 때문에, 오리생성과 데코레이터로 감싸는 부분을 캡슐화해야 함.
  10. 오리를 생산하는 팩토리가 필요함.
    • p536 참고
  11. 팩토리를 쓰도록 시뮬레이터를 고침.
    • 추상 팩토리를 사용함.

댓글

Designed by JB FACTORY