[ 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의 중간다리 역할입니다.
그 외 설명
Model과 View는 MVC 패턴과 동일하고, Controller 대신 Presenter가 존재합니다.
View와Model의 중간다리 역할입니다.
[ 과정 ]
- 사용자의 입력이 View를 통해 들어옵니다.
- View는 해당data를 Presenter에 요청합니다.
- Presenter는Model에게 data를 요청합니다.
- Model은Presenter에서 요청받은 데이터를 전달합니다.
- Presenter는View에게 데이터를 전달합니다.
- 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 댓글