MY MEMO

[UWP] MVC MVP MVVM 본문

STUDYING/C#

[UWP] MVC MVP MVVM

l_j_yeon 2017. 8. 20. 04:47

출처 : https://academy.realm.io/kr/posts/eric-maxwell-mvc-mvp-and-mvvm-on-android/


MVC


- Model

데이터+상태+비즈니스 로직 = 두뇌

뷰나 컨트롤러에 묶이지 않아 많은 곳에 재사용 가능


- View

모델의 표현 즉 ui

버튼을 눌렀을 때 어떤 일을 하는지 알지 못함


- Controller

뷰가 컨트롤러에게 사용자가 버튼을 눌렀다고 알리면

컨트롤러는 어떻게 상호작용할지 결정


장점

- 모델과 뷰가 훌륭하게 분리됨

- 쉽게 모델을 테스트


단점 -> 컨트롤러

- 테스트의 용이성 : 컨트롤러가 api에 깊게 종속 -> 유닛 테스트가 어려움

- 모튤화 및 유연성 : 컨트롤러가 뷰에 단단히 결합 -> 뷰 변경시 컨트롤러 변경

- 유지 보수 : 컨트롤러가 많아지면서 코드가 비대해짐 -> 문제 발생이 쉬움


MVP


- Model


- View


-Presenter

뷰에 연결되는 것이 아니라 그냥 interface

interface안에 실행되는 것들을 넣어놓음


단점

- 유지보수 : 추가로 로직이 모여 거대하고 비대한 코드가 되지 쉬움


MVVM


-Model


-View


-View Model

뷰모델은 모델을 래핑하고 뷰에 필요한 옵저버블 데이터를 준비

뷰가 모델에 이벤트를 준비할 수 있도록 훅을 준비

뷰모델이 뷰에 종속되지는 않음


=> Binding 과 Command기능!

이해하기 쉬운 예제 : http://hackersstudy.tistory.com/89



'STUDYING > C#' 카테고리의 다른 글

[UWP] 기능  (0) 2017.08.20
[UWP] SQLite 시작하기  (0) 2017.08.20
[UWP] Task Editor  (0) 2017.08.20
[UWP] Custom Checkbox  (0) 2017.08.19
[UWP] Drag and Drop Image  (0) 2017.08.19
Comments