MVVM

종류: Architecture

디자인 패턴의 일부

‘M’VVM의 Model

MVVM 아키텍쳐에서 Model은 데이터 구조를 정의하고 ViewModel에게 결과를 알려준다.

여기서의 Model은 View와 이어지지 않는다.

여기서 말하는 model은 entity, dto와 같은 그런 거라고 봐야 함!!

M’V’VM 의 View

MVVM의 View는 흔히 사용하는 ViewController에 코드를 작성한다.

view는 사용자와의 상호작용을 통해 이벤트가 일어나면 ViewModel에게 알려주며,

ViewModel이 업데이트 요청한 데이터를 보여준다.

MV’VM’ 의 ViewModel

ViewModel은 사용자의 상호작용을 view가 보내주면 그에 맞는 이벤트를 처리하고,

Model의 Read Update Delete를 담당한다.

api, db같은 것도 얘가 하는 거임!!

Untitled

장점 : view, model, viewModel 모두 독립적으로 테스트가 가능

단점 : 설계가 어렵고 뷰에 대한 처리가 복잡해지면 뷰모델도 거대해진다는 문제점 존재

mvvm의 핵심이 옵저버블!

MVP vs MVVM

  • mvp에서의 presentor은 mvc의 viewController가 모든 역할을 다하니까 presentor는 화면 처리만 view한테 주는 것을 의미
  • mvp는 다 처리하고나서 view한테 그려줘라고 하는 것!!
  • mvvm은 모델하고만 놀고 view와 1:다 관계이며 viewModel에서 view로 가는 방향이 없음.
  • model하고만 놂
  • 단, view가 그릴려면 viewModel을 view가 지켜보고 봐서 알아서 바꿔주게 함

MVC VS MVVM

  • 공통점
    • Model 과 View를 포함
  • 차이점
    • MVC 패턴은 View와 Model 사이의 의존성이 큰것에 비해 MVVM 패턴은 Command 패턴과 Data Binding 패턴을 이용해 그 의존성을 없앴다!