
정의
Model + View + View Model
목적 및 특징
- View Model
- View를 표현하기 위해 만든 View를 위한 Model
- View를 나타내 주기 위한 Model이자 View를 나타내기 위한 데이터 처리를 하는 부분입니다.
- Command 패턴과 Data Binding 두 가지 패턴을 사용하여 구현
- Command 패턴과 Data Binding을 이용하여 View와 View Model 사이의 의존성을 없앴습니다.
- View Model과 View는 1:N 관계
- View Model은 옵저버 패턴을 사용
예시
- 사용자는 View를 통해 요청
- View가 ViewModel에 요청
- ViewModel은 Model에게 데이터를 요청
- Model은 ViewModel에게 데이터를 반환
- ViewModel은 응답 받은 데이터를 가공하여 저장
- View는 Data Binding을 이용해 UI를 갱신
장점
- View와 Model 사이의 의존성이 없다.
- Command 패턴과 Data Binding을 사용하여 View와 View Model 사이의 의존성 또한 없다.
- 독립적이기 때문에 모듈화 하여 개발 가능
- 개발 기간 동안 개발자와 디자이너가 동시에 독립적으로(병렬적으로) 작업 가능
단점