Header

[ Design Pattern 02 ] MVP 패턴이란

[ Design Pattern 02 ] MVP 패턴이란








[ MVP란 ]



MVP = Model + View + Presenter 



[ 구조 ]



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

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


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

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

View와Model의 중간다리 역할입니다.



[ 과정 ]




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




[ 기능 ]



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

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

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

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





    [ 차별점 ]



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


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


    댓글 쓰기

    0 댓글