본문 바로가기

프로그래밍/디자인패턴

MVVM (Model-View-ViewModel)

728x90
반응형

- Model View ViewModel의 약자

- 프로그래밍을 할 때 Model, View, ViewModel로 구분하여 설계하는 방법이다.

- 사용자 인터페이스의 이벤트 중심 프로그래밍을 간소화하기 위해 고안되었다.

- Ken Cooper 및 Ted Peters가 개발하였다고 한다.

(2005년 John Gossman의 블로그에서 발표되었다고 한다.)

각자의 역할은 아래와 같다.

1. Model

- 데이터를 보유 또는 가공하는 역할을 한다.

(사용자가 편집하길 원하는 모든 데이터들을 가지고 있다)

- View와는 서로 모르는 관계를 갖는다.

2. View

- UI등 무언가 화면에 보여주기 위한 역할을 한다.

- ViewModel과는 Command패턴으로 DataBinding 되어 있다.

3. ViewModel

- View와는 Command패턴으로 DataBinding 되어 있다.

- View를 나타내기 위한 로직을 담당한다.

- Model에서 데이터가 가공되면 해당 ViewModel과 Binding되어 있는 View가 자동 없데이트 된다.

 

 

 

장점

- 뷰에 대한 의존성이 없다.

단점

- View는 그냥 껍데기가 될 수 있다.

(상대적으로 역할이 없다.)

- ViewModel이 View처럼 변질될 수 있다.

(MVVM이 아니라 MV처럼 변질 될지도..)

 

참고출처

 

디자인패턴) MVVM 패턴

MVVM 패턴 (Model- View - View Model) MVC 패턴의 단점을 보완하기 위해서 만들어진 패턴으로 특징은 Command 패턴과 Data Binding 패턴을 사용해서 구현을 해서 View 와 View Model 사이의 의존성을 없애는 것이..

drehzr.tistory.com

Command 링크

 

Command (커맨드)

- 구현하고자 하는 기능들을 객체로 캡슐화하여 사용하는 패턴 - Command, Receiver(수신자), Invoker(호출자), Client로 구분한다. - 수신자와 호출자의 의존성을 제거 - 객체로 캡슐화가 되어 있어서 변경이 필..

chipmunk-plump-plump.tistory.com

 

MVC 링크

 

MVC (Model-View-Controller)

- Model View Controller 의 약자 - 프로그래밍을 할 때 Model, View, Controller로 구분하여 설계하는 방법을 말한다. - View와 Controller는 내부 속성 값을 가져서는 안된다. ​ 각각의 역할은 아래와 같다. 1...

chipmunk-plump-plump.tistory.com

MVP 링크

 

MVP (Model-View-Presenter)

- Model View Presenter 의 약자 - 프로그래밍을 할 때 Model, View, Presenter로 구분하여 설계하는 방법이다. - MVC 모델의 단점을 보안하기 위하 고안된 패턴이다. ​ 각각의 역할은 아래와 같다. 1. Model -..

chipmunk-plump-plump.tistory.com

 

 

다람쥐와 포동포동이

 

RememberCook 9월 28일 정식 출시!

두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��

chipmunk-plump-plump.tistory.com

반응형

'프로그래밍 > 디자인패턴' 카테고리의 다른 글

Adapter (어댑터)  (9) 2020.04.22
MVP (Model-View-Presenter)  (0) 2020.04.09
MVC (Model-View-Controller)  (0) 2020.04.09
Command (커맨드)  (0) 2020.04.09
Strategy (스트레티지)  (0) 2020.04.09