DESIGN PATTERN

Winform , MVC, MVP, MVVM

파란실버라이트 2017. 9. 19. 14:06

MVVM Pattern으로 개발을 다시 하기 전에 개념을 정리하고 싶었다. :)




Winform , Behind code 

- View로 요청을 받음

- View의 control을 Behind code에서 바로 binding    

- Model을 사용해서 business logic을 처리하더라도 View와 강하게 결합 

                      

Model - View(n) - Controller(1) 

- Contoller로 요청을 받음 

- Contoleer는 Model에게 Bisiness logic 처리 요청

- view는 모델을 참조하여 업데이트 함, 

- View와 model과 의존성이 없앨수 없다.

- Model과 view의 의존성을 낮게하는 패턴을 사용하면 좋은 MVC가 된다


Model - view(1) - Presenter(1)

- View로 요청을 받음

- Presenter는 Model에게 Bisiness logic 처리 요청

- 그 결과는 View에게 알려준다. 

- Model와 View과 완벽하게 분리

- View와 Presenter의 의존성이 강하다.(1:1결합)


Model - view(N) - Viewmodel(1)

- View로 요청을 받음

- Command : View의 Behavior를 Command로 View model에게 요청

- View Model은 Model에게 Bisness log을 요청 

- Data binding : View Model의 속성 값이 변경되면 binding된 View control에게 notify가 가면서 자동 업데이트

- Model은 View로 부터 완벽히 분리

- MVP와 달리 Viewmodel은 여러 View에서 재사용이 가능하다.