728x90
반응형
- 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처럼 변질 될지도..)
참고출처
Command 링크
MVC 링크
MVP 링크
반응형
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
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 |