MP3에대한 MVC

디자인 패턴의 관계에서 바라본 MVC

  1. 사용자는 뷰하고만 접촉할 수 있다.
  2. 컨트롤러에서 모델한테 상태를 변경하라는 요청을 한다.
  3. 컨트롤러에서 뷰를 변경해 달라고 요청할 수도 있다.
  4. 상태가 변경되면 모델에서 뷰한테 그 사실을 알린다.
  5. 뷰에서 모델한테 상태를 요청한다.

패턴 안경을 끼고 MVC를 살펴보자

  • 스트래티지 패턴의 적용 원칙
  • 자주 바뀌는 부분(기능)을 바뀌지 않는 부분과 분리하여 캡슐화 한다.

  • 스트래티지 패턴(뷰와 컨트롤러) - 뷰 객체를 여러 전략을 써서 제공한다. 전략은 컨트롤러가 제공한다. 뷰에서는 애플리케이션의 겉모습에만 신경을 쓰고, 인터페이스의 행동에 대한 결정은 모두 컨트롤러한테 맡긴다. 스트래티지 패턴을 사용하는 것은 뷰를 모델로부터 분리시키는데 도움이 된다.

  • 컴포지트 패턴(뷰) - 디스플레이는 여러 단계로 겹쳐져 있을 수 있는 일련의 윈도우, 패널 버튼, 텍스트 레이블 등으로 구성된다. 각 디스플레이 항목은 복합객체 또는 잎이 될 수 있다. 컨트롤러에서 뷰한테 화면을 갱신해 달라고 요청하면 최상위 뷰 구성요소한테만 화면을 갱신하라고 애기하면 된다. 나머지는 컴포지트 패턴에 의해 자동으로 처리된다.

  • 옵저버패턴(모델) - 모델에서는 옵저버 패턴을 써서 상태가 변경되었을 때 그 모델하고 연관된 객체들한테 연락을 한다. 옵저버 패턴을 사용하면 모델을 뷰 및 컨트롤러로부터 완전히 독립시킬 수 있다. 한 모델에서 서로 다른 뷰를 사용할 수도 있고, 심지어 여러 개의 뷰를 동시에 사용하는 것도 가능하다.