(디자인 패턴) MVP 패턴이란

제로코딩

·

2022. 6. 23. 15:43

반응형

(디자인 패턴) MVP 패턴이란

 

MVP 패턴

다음 이미지에서 보이듯이 Model과 View는 서로 연결되어있지 않고 Presenter를 매개체로 하여 서로 연동된다.

 

 

 

⚡️ MVP란

MVP = Model + View + Presenter

 

 

 

📌 구조 

 

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

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


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

 

 

 

 

 

📌 작동과정 (Processing)

 

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간의 높은 의존성이라는 문제점이 생겼습니다.

 

 

📌 마무리

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

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

반응형