- Model View ViewModel의 약자
- 프로그래밍을 할 때 Model, View, ViewModel로 구분하여 설계하는 방법이다.
- 사용자 인터페이스의 이벤트 중심 프로그래밍을 간소화하기 위해 고안되었다.
- Ken Cooper 및 Ted Peters가 개발하였다고 한다.
(2005년 John Gossman의 블로그에서 발표되었다고 한다.)
각자의 역할은 아래와 같다.
1. Model
- 데이터를 보유 또는 가공하는 역할을 한다.
(사용자가 편집하길 원하는 모든 데이터들을 가지고 있다)
- View와는 서로 모르는 관계를 갖는다.
2. View
- UI등 무언가 화면에 보여주기 위한 역할을 한다.
- ViewModel과는 Command패턴으로 DataBinding 되어 있다.
3. ViewModel
- View와는 Command패턴으로 DataBinding 되어 있다.
- View를 나타내기 위한 로직을 담당한다.
- Model에서 데이터가 가공되면 해당 ViewModel과 Binding되어 있는 View가 자동 없데이트 된다.

장점
- 뷰에 대한 의존성이 없다.
단점
- View는 그냥 껍데기가 될 수 있다.
(상대적으로 역할이 없다.)
- ViewModel이 View처럼 변질될 수 있다.
(MVVM이 아니라 MV처럼 변질 될지도..)
참고출처
디자인패턴) MVVM 패턴
MVVM 패턴 (Model- View - View Model) MVC 패턴의 단점을 보완하기 위해서 만들어진 패턴으로 특징은 Command 패턴과 Data Binding 패턴을 사용해서 구현을 해서 View 와 View Model 사이의 의존성을 없애는 것이..
drehzr.tistory.com
Command 링크
Command (커맨드)
- 구현하고자 하는 기능들을 객체로 캡슐화하여 사용하는 패턴 - Command, Receiver(수신자), Invoker(호출자), Client로 구분한다. - 수신자와 호출자의 의존성을 제거 - 객체로 캡슐화가 되어 있어서 변경이 필..
chipmunk-plump-plump.tistory.com
MVC 링크
MVC (Model-View-Controller)
- Model View Controller 의 약자 - 프로그래밍을 할 때 Model, View, Controller로 구분하여 설계하는 방법을 말한다. - View와 Controller는 내부 속성 값을 가져서는 안된다. 각각의 역할은 아래와 같다. 1...
chipmunk-plump-plump.tistory.com
MVP 링크
MVP (Model-View-Presenter)
- Model View Presenter 의 약자 - 프로그래밍을 할 때 Model, View, Presenter로 구분하여 설계하는 방법이다. - MVC 모델의 단점을 보안하기 위하 고안된 패턴이다. 각각의 역할은 아래와 같다. 1. Model -..
chipmunk-plump-plump.tistory.com

RememberCook 9월 28일 정식 출시!
두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��
chipmunk-plump-plump.tistory.com
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
Adapter (어댑터) (9) | 2020.04.22 |
---|---|
MVP (Model-View-Presenter) (0) | 2020.04.09 |
MVC (Model-View-Controller) (0) | 2020.04.09 |
Command (커맨드) (0) | 2020.04.09 |
Strategy (스트레티지) (0) | 2020.04.09 |