MVC모델은 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분인 Model,
사용자에게 보여지는 UI부분인 View,
사용자의 입력을 받고 처리하는 부분인 Controller로 구성된다.
Controller로 사용자의 입력이 들어온다.
Controller가 Model의 데이터를 업데이트하고 불러온다.
Model이 데이터를 표시할 View를 선택하여 화면에 보여준다.
MVC모델과 Model, View의 역할은 같지만 사용자 입력을 View에서 받는다.
Model과 View는 각각 Presenter와 상호작용 하며 동작한다.
View로 사용자의 입력이 들어온다.
View는 Presenter에 작업을 요청한다.
Presenter에서 필요한 데이터를 Model에 요청한다.
Model은 Presenter에 필요한 데이터를 응답한다.
Presenter가 View에게 데이터를 응답한다.
View가 받은 데이터를 이용해 화면을 보여준다.
여기서 ViewModel이란 View를 표현하기 위해 만들어진 모델로 View가 필요로하는 데이터를 쥐고있다.
따라서 View는 View모델을 관찰(Observing)하는 형태로 구현되어있다.
View에서 입력이 들어오면 Command패턴을 통해 ViewModel에게 명령을 내리게 되고 Data Binding으로 인해 ViewModel의 값이 변경되면 View의 정보가 바뀌어져 버린다.