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

요약

  • 복합 패턴
    • 모델, 뷰, 컨트롤러 만들기
    • 모델 만들기
    • 뷰 알아보기
    • 뷰 만들기
    • 컨트롤러 만들기
    • MVC 속 전략 패턴 자세히 알아보기
    • 디자인 도구상자 안에 들어가야 할 도구들

메모

모델, 뷰, 컨트롤러 만들기

  • 모델은 데이터, 상태, 애플리케이션 로직을 모두 관리하는 임무를 맡고 있음.
  • BeatModel 에는 뭐가 들어가야 하는가?
    • 현재 BPM 관리하는 상태
    • 소리를 내는 여러 가지 미디를 생성하는 코드가 필요함.
    • 컨트롤러에서 비트를 조절하거나, 뷰와 컨트롤러에서 모델의 상태를 알아낼 때 사용할 수 있도록 외부에 공개된 인터페이스도 있어야 함.
    • 모델이 옵저버 패턴을 사용한다는 사실도 잊으면 안됨.
  • p565 참고

모델 만들기

  • 이 모델은 오디오 클립을 이용해서 비트를 만듦.
  • p566 참고

뷰 알아보기

  • 뷰를 연결해서 BeatModel을 가지고 뭔가 눈에 보이는 걸 만들어야 함.
  • 뷰는 2개의 서로 다른 창으로 구현해야 함.
    • 한 쪽 창에는 현재 BPM과 비트마다 통통 튀는 모습을 보여주는 막대가 있음.
    • 다른 쪽에는 제어용 인터페이스가 있음.

뷰 만들기

  • 일단, 현재 BPM과 비트 막대를 표시하는 모델용 뷰의 코드를 먼저 만들어야 함.
    • p568 참고
  • BPM을 입력할 수 있는 텍스트 필드와 BPM을 조절하는 버튼이 있는 사용자 인터페이스 제어 부분의 코드를 만든다.
    • 모델이 어떤 일을 해야 하는지 알려주는 일은 컨트롤러가 맡아서 해 줌.
    • p569 참고

컨트롤러 만들기

  • 컨트롤러는 뷰에서 쓰이는 전략임
    • 전략 패턴을 구현하려면 DJ뷰에 넣을 전략 객체의 인터페이스를 먼저 만들어야 함.
    • p570 참고
      • 뷰가 컨트롤러를 호출할 때 사용하는 모든 인터페이스가 들어 있음.

MVC 속 전략 패턴 자세히 알아보기

  • BPM을 보여주는 비트 막대의 움직임을 View 로 보여줬음.
    • 이를 심박수를 모니터링 하는 View 로 바꿀 수 있음.
    • 어댑터 패턴을 이용하면 됨.
  • HeartAdapter를 만들고, 타깃 인터페이스인 BeadModelInterface 를 구현해야 함.
    • HeartModelInterface를 레퍼런스를 가지고, getBPM() 메소드를 해당 인터페이스에서 getHeartRate() 라는 메소드를 호출하도록 구현하면 됨.

디자인 도구상자 안에 들어가야 할 도구들

  • 복합 패턴
    • 2개 이상의 패턴을 결합해서 일반적으로 자주 등장하는 문제들의 해법을 제공함.

댓글

Designed by JB FACTORY