요약
- 복합 패턴
- 모델, 뷰, 컨트롤러 만들기
- 모델 만들기
- 뷰 알아보기
- 뷰 만들기
- 컨트롤러 만들기
- MVC 속 전략 패턴 자세히 알아보기
- 디자인 도구상자 안에 들어가야 할 도구들
메모
모델, 뷰, 컨트롤러 만들기
- 모델은 데이터, 상태, 애플리케이션 로직을 모두 관리하는 임무를 맡고 있음.
- BeatModel 에는 뭐가 들어가야 하는가?
- 현재 BPM 관리하는 상태
- 소리를 내는 여러 가지 미디를 생성하는 코드가 필요함.
- 컨트롤러에서 비트를 조절하거나, 뷰와 컨트롤러에서 모델의 상태를 알아낼 때 사용할 수 있도록 외부에 공개된 인터페이스도 있어야 함.
- 모델이 옵저버 패턴을 사용한다는 사실도 잊으면 안됨.
- p565 참고
모델 만들기
- 이 모델은 오디오 클립을 이용해서 비트를 만듦.
- p566 참고
뷰 알아보기
- 뷰를 연결해서 BeatModel을 가지고 뭔가 눈에 보이는 걸 만들어야 함.
- 뷰는 2개의 서로 다른 창으로 구현해야 함.
- 한 쪽 창에는 현재 BPM과 비트마다 통통 튀는 모습을 보여주는 막대가 있음.
- 다른 쪽에는 제어용 인터페이스가 있음.
뷰 만들기
- 일단, 현재 BPM과 비트 막대를 표시하는 모델용 뷰의 코드를 먼저 만들어야 함.
- BPM을 입력할 수 있는 텍스트 필드와 BPM을 조절하는 버튼이 있는 사용자 인터페이스 제어 부분의 코드를 만든다.
- 모델이 어떤 일을 해야 하는지 알려주는 일은 컨트롤러가 맡아서 해 줌.
- p569 참고
컨트롤러 만들기
- 컨트롤러는 뷰에서 쓰이는 전략임
- 전략 패턴을 구현하려면 DJ뷰에 넣을 전략 객체의 인터페이스를 먼저 만들어야 함.
- p570 참고
- 뷰가 컨트롤러를 호출할 때 사용하는 모든 인터페이스가 들어 있음.
MVC 속 전략 패턴 자세히 알아보기
- BPM을 보여주는 비트 막대의 움직임을 View 로 보여줬음.
- 이를 심박수를 모니터링 하는 View 로 바꿀 수 있음.
- 어댑터 패턴을 이용하면 됨.
- HeartAdapter를 만들고, 타깃 인터페이스인 BeadModelInterface 를 구현해야 함.
- HeartModelInterface를 레퍼런스를 가지고, getBPM() 메소드를 해당 인터페이스에서 getHeartRate() 라는 메소드를 호출하도록 구현하면 됨.
디자인 도구상자 안에 들어가야 할 도구들
- 복합 패턴
- 2개 이상의 패턴을 결합해서 일반적으로 자주 등장하는 문제들의 해법을 제공함.
댓글