디자인패턴, MVC, MVP, MVVM

Android Chen·2021년 11월 19일
0
post-custom-banner

디자인 패턴 탄생배경

  • 웹 개발을 위한 프레임워크 패턴들은 화면에 보여주는 로직과 실제 데이터가 처리되는 로직을 분리했다. 분리하지 않고 사용해도 프로그램은 잘 돌아가지만 프로그램의 규모가 커질수록 유지보수가 어렵고 알아보기 힘든 코드가 될 수 있다.

Model - View - Controller

  • MVC모델은 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분인 Model,

  • 사용자에게 보여지는 UI부분인 View,

  • 사용자의 입력을 받고 처리하는 부분인 Controller로 구성된다.

동작과정

  • Controller로 사용자의 입력이 들어온다.

  • Controller가 Model의 데이터를 업데이트하고 불러온다.

  • Model이 데이터를 표시할 View를 선택하여 화면에 보여준다.

단점

  • Model과 View의 의존성이 크다. 이를 극복하기 위해 MVP 패턴이 등장함

Model - View - Presenter

  • MVC모델과 Model, View의 역할은 같지만 사용자 입력을 View에서 받는다.

  • Model과 View는 각각 Presenter와 상호작용 하며 동작한다.

동작과정

  • View로 사용자의 입력이 들어온다.

  • View는 Presenter에 작업을 요청한다.

  • Presenter에서 필요한 데이터를 Model에 요청한다.

  • Model은 Presenter에 필요한 데이터를 응답한다.

  • Presenter가 View에게 데이터를 응답한다.

  • View가 받은 데이터를 이용해 화면을 보여준다.

단점

  • 분명 View, Model의 의존성은 없지만 View와 Presenter가 1:1로 강한 의존성을 가진다. 이를 해결하기 위해 MVVM모델이 등장한다.

Model - View - ViewModel

  • 여기서 ViewModel이란 View를 표현하기 위해 만들어진 모델로 View가 필요로하는 데이터를 쥐고있다.

  • 따라서 View는 View모델을 관찰(Observing)하는 형태로 구현되어있다.

  • View에서 입력이 들어오면 Command패턴을 통해 ViewModel에게 명령을 내리게 되고 Data Binding으로 인해 ViewModel의 값이 변경되면 View의 정보가 바뀌어져 버린다.

profile
https://github.com/Userz1-redd
post-custom-banner

0개의 댓글