Header

[ Design Pattern 02 ] MVP 패턴이란

[ Design Pattern 02 ] MVP 패턴이란








[ MVP ]



MVP = Model + View + Presenter 



[ 구조 ]



Model 
일종의 데이터(Data)라고 생각하면 됩니다
데이터 뿐만이 아니라 데이터를 가공해서 처리하는 간단한 로직도 model안에 포함이 되는 부분입니다.
어플리케이션에서 사용하는 데이터 및 그 데이터를 처리합니다.

View 
사용자에게 보여지는 화면입니다. 사용자에게 제공되어지는 UI Layer를 의미합니다.
브라우져나 모바일 화면에서 ViewCSS/HTML/XML 등으로 렌더링 되어서 보여주는 화면을 가리킵니다.


Presenter 
View에서 요청한 정보로 Model을 가공하여 View에 전달합니다.

그 외 설명 
Model View MVC 패턴과 동일하고, Controller 대신 Presenter가 존재합니다.

ViewModel의 중간다리 역할입니다.



[ 과정 ]




  1. 사용자의 입력이 View를 통해 들어옵니다.
  2. View는 해당data Presenter에 요청합니다.
  3. PresenterModel에게 data를 요청합니다.
  4. ModelPresenter에서 요청받은 데이터를 전달합니다.
  5. PresenterView에게 데이터를 전달합니다.
  6. ViewPresenter가 응답한 데이터를 이용하여 화면에 표시합니다.




기능 ]



View-Presenter관계는One-to-One입니다.

View Presenter refer하고, Presenter View refer합니다( 서로간의 연결 결합 고리가 강합니다 )

View Model에게 영향을 끼칠 수 없습니다. ( * MVC와 비슷합니다.)

PresenterModel의 데이터를 수정하고, 데이터를 가져오는 것이 가능합니다.





    [ 차별점 ]



    MVP의 장점은View Model간의 의존성이 없다는 것입니다.
    이 디자인 패턴은 MVC 패턴의 단점인 View Model의 의존하는 문제점을 잡았습니다.


    그렇지만 Presenter를 통해서만 Data를 전달받기 때문에 view presenter간의 높은 의존성이라는 문제점이 생겼습니다.


    댓글 쓰기

    0 댓글