MVC에서 파생된 Model과 View 간의 의존성뿐만 아니라
Controller와 View 간의 의존성도 고려하여
각 구성 요소가 독립적으로 작성되고 테스트될 수 있도록 설계된 아키텍처 패턴
MVVM는 Model + View + View Model를 말한다.
MVVM 패턴의 동작 순서는 아래와 같다.
MVVM 패턴은 Command 패턴과 Data Binding 두 가지 패턴을 사용하여 구현되었다.
Command 패턴과 Data Binding을 이용하여 View와 View Model 사이의 의존성을 없앴다.
View Model과 View는 1:n 관계이다.
MVP와 마찬가지로 M-V 사이의 의존성이 없고 MVP처럼 V-VM이 1:1 관계가 아닌 독립적이기 때문에 이 둘 사이의 의존성도 없습니다
MVVM 패턴은 View와 Model 사이의 의존성이 없다. 또한 Command 패턴과 Data Binding을 사용하여 View와 View Model 사이의 의존성 또한 없앤 디자인 패턴이다. 각각의 부분은 독립적이기 때문에 모듈화 하여 개발할 수 있다.
Model과 View 사이의 의존성이 없음
ViewModel과 View 사이의 의존성이 없음
중복되는 코드를 모듈화 할 수 있음
MVVM 패턴의 단점은 View Model의 설계가 쉽지 않다.