모델: 은 매우 간단합니다. 비즈니스 로직과 관련된 데이터 개체이며 일반적으로 데이터베이스에서 매핑되며 데이터베이스에 해당하는 모델이라고 할 수 있습니다.
보기: 도 매우 간단하며 표시되는 사용자 인터페이스입니다.
기본적으로 대부분의 소프트웨어가 하는 일은 데이터 저장소에서 데이터를 읽고 이를 사용자 인터페이스에 표시한 다음 사용자 인터페이스에서 입력을 받아 데이터 저장소에 쓰는 것입니다. 따라서 기본적으로 데이터 저장(모델)과 인터페이스(뷰)의 두 계층에 대해 이의가 없습니다. 그러나 모델을 뷰에 표시하는 방법과 뷰에서 모델에 데이터를 쓰는 방법에 대해서는 사람들마다 의견이 다릅니다.
MVC 학교의 관점은 인터페이스의 모든 변경이 이벤트라는 것입니다. 사용자의 입력을 모델의 객체로 변환하려면 각 이벤트에 대해 여러 개의 코드만 작성하면 됩니다.
MVVM 사고 방식은 뷰의 다양한 컨트롤에 해당하는 데이터 개체도 정의한다는 것입니다. 이러한 방식으로 이 데이터 개체가 수정되는 한 뷰에 표시되는 콘텐츠는 자동으로 새로 고쳐집니다. 뷰에서 수행된 모든 작업은 이 데이터 개체에 따라 자동으로 업데이트되므로 매우 아름답습니다. 그래서:
ViewModel: 은 인터페이스(뷰)에 해당하는 모델입니다. 데이터베이스 구조는 인터페이스 컨트롤과 일대일로 직접 대응할 수 없는 경우가 많기 때문에 뷰의 컨트롤과 구체적으로 대응하는 다른 데이터 개체를 정의해야 합니다. ViewModel의 역할은 모델 객체를 입력을 표시하고 받아들일 수 있는 인터페이스 데이터 객체로 캡슐화하는 것입니다.
뷰 모델의 데이터는 뷰와 함께 자동으로 새로 고쳐지고 모델과 동기화됩니다. 이 부분의 코드는 공통 프레임워크로 작성될 수 있으므로 프로그래머는 이에 대해 걱정할 필요가 없습니다.
간단히 말하면 ViewModel은 View와 Model을 연결하는 역할을 하며 ViewModel을 통해 양방향 바인딩을 구현합니다.