Programming/Patterns

[Pattern]MVC Pattern과 MVP Pattern 그리고 차이

MB Kyle KWON 2013. 4. 10. 23:32

    모델-뷰-컨트롤러(Model–View–Controller, MVC)는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. 

MVC

모델(Model)은 애플리케이션의 정보(데이터)를 나타낸다.

뷰(View)는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 

컨트롤러(Controller)는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.

=밑의 그림은 스탠포드에서 iOS 프로그래밍을 강연할 때, MVC를 가르치는 그림이다.





MVC 참고 : http://en.wikipedia.org/wiki/Model–view–controller

 

    모델-뷰-프레젠터(Model–View–Presenter, MVP 소프트웨어 공학에서 사용되는 아키텍처 패턴 중 하나이다. MVC 패턴에서 유도된 패턴이다. 패턴을 도식화하면 밑의 그림과 같다. MVC의 View에 남아있는 모든 비지니스 로직을 전부 Presenter로 통합 했다는데에 있다. 이는 MVC에서 View와 Controller에 조금이나마 남아있던 결합도 마저 낮추게 된다. 결국 같은 View를 사용하더라도 이에 연결된 Presenter의 로직에 관하여 완전히 다른 로직을 구현할 수 있게 됨으로써 유지/보수의 편리를 추구하는 패턴이다.

MVP

모델(Model)은 애플리케이션의 정보(데이터)를 나타낸다.

뷰(View)는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다. 

프레젠터(Presenter)는 MVC의 Controller와 비슷하다. 다만, 다른 점이 있다면 View의 남아 있는 모든 비지니스 로직을 전부 Presenter로 통합 했다는데에 있다.




MVC와 MVP의 차이

MVC는 하나의 Controller에서 여러 View를 관장할 수 있으나, MVP는 각 View마다 Presenter가 할당된다.

MVC에서 Controller에서 user event를 처리하지만, MVP는 View에서 user event를 받는다.

MVC에서는 Controller에서 user event에 따른 데이터 로직을 수행한다. MVP에서 View는 오로지 user event를 Presenter로 전달만 할 뿐이다.





MVP 참고 : http://en.wikipedia.org/wiki/Model-view-presenter

저장저장


저장저장저장저장


저장저장


저장저장

'Programming > Patterns' 카테고리의 다른 글

[Pattern]Mediator Pattern  (0) 2013.12.03
[Pattern]MVVM Pattern  (0) 2013.12.03
[Pattern]Observer Pattern  (0) 2013.08.25
[Pattern]State Pattern과 Strategy Pattern  (0) 2012.10.09
[Pattern]Singleton Pattern  (0) 2012.09.21