Model + View + Presenter를 합친 용어입니다. Model과 View는 MVC 패턴과 동일하고, Controller 대신 Presenter가 존재합니다.

구조

Model

어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분입니다.

View

사용자에서 보여지는 UI 부분입니다.

Presenter

View에서 요청한 정보로 Model을 가공하여 View에 전달해 주는 부분입니다. View와 Model을 붙여주는 접착제..? 역할을 합니다.

동작

MVP 패턴의 동작 순서는 아래와 같습니다.

사용자의 Action들은 View를 통해 들어오게 됩니다.

View는 데이터를 Presenter에 요청합니다.

Presenter는 Model에게 데이터를 요청합니다.

Model은 Presenter에서 요청받은 데이터를 응답합니다.

Presenter는 View에게 데이터를 응답합니다.

View는 Presenter가 응답한 데이터를 이용하여 화면을 나타냅니다.

특징

Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 접착제 역할을 합니다.

Presenter와 View는 1:1 관계입니다.