- Model View Presenter 의 약자
- 프로그래밍을 할 때 Model, View, Presenter로 구분하여 설계하는 방법이다.
- MVC 모델의 단점을 보안하기 위하 고안된 패턴이다.
각각의 역할은 아래와 같다.
1. Model
- 데이터를 보유 또는 가공하는 역할을 한다.
(사용자가 편집하길 원하는 모든 데이터들을 가지고 있다)
- View와는 서로 모르는 관계를 갖는다.
- Presenter와는 요청을 받고 그 요청에 맞는 정보를 가공하여 전달해줄 뿐의 관계다.
2. View
- UI등 무언가 화면에 보여주기 위한 역할을 한다.
- 화면에 보여주는 역할 외에는 그 무엇도 관여해서는 안된다.
- Presenter에 간접적으로 버튼이 눌렸음 정도만 알린다.
- Model과는 서로 모르는 관계를 갖는다.
3. Presenter
- Model과 View를 이어주는 중간다리 역할을 한다.
- Event에 대한 기능을 수행하고 Model에서 가공된 정보를 View에게 전달한다.
위 역할에 따라 계산기로 간단히 플로우를 살펴보자면
1. Model
- 일반용, 공학용 등의 플래그들을 보유
- 일반용일 경우 일반용에 필요한 정보를 가공하여 리턴
- 공학용일 경우 공학용에 필요한 정보를 가공하여 리턴
2. Presenter
- 숫자, +, -, 보기, 편집 등의 이벤트를 받음
- 보기->일반용 플래그를 누르면 Model로부터 가공된 정보를 받아 View에 던져준다.
- 보기->공학용 플래그를 누르면 Model로부터 가공된 정보를 받아 View에 던져준다.
3. View
- 화면에 보이는 것들을 그린다.
- Presenter가 Model로부터 일반용, 공학용 등 가공된 정보를 가져다가 던져주면 View에서는 그에 맞는 화면을 그려준다.

장점
- 각각 역할에 맞는 작업만 한다.
- Model과 View가 독립성을 갖는다.
단점
- MVC와 달리 이번에는 Presenter와 View의 의존성이 강하다.
참고 출처
디자인패턴) MVP 패턴
MVP 패턴 (Model + View + Presenter) MVP 패턴은 MVC의 View와 Model 사이의 의존성이 높아지는것을 낮추기 위해서 Persenter라는 개념이 도입된 패턴이다. 사용자 입력은 MVC와 동일하게 VIew를 통해서 받는다...
drehzr.tistory.com
MVC 링크
MVC (Model-View-Controller)
- Model View Controller 의 약자 - 프로그래밍을 할 때 Model, View, Controller로 구분하여 설계하는 방법을 말한다. - View와 Controller는 내부 속성 값을 가져서는 안된다. 각각의 역할은 아래와 같다. 1...
chipmunk-plump-plump.tistory.com
MVVM 링크
MVVM (Model-View-ViewModel)
- Model View ViewModel의 약자 - 프로그래밍을 할 때 Model, View, ViewModel로 구분하여 설계하는 방법이다. - 사용자 인터페이스의 이벤트 중심 프로그래밍을 간소화하기 위해 고안되었다. - Ken Cooper 및 Ted..
chipmunk-plump-plump.tistory.com

RememberCook 9월 28일 정식 출시!
두번째 게임인 RememberCook이 출시되었습니다. 귀여운 캐릭터들이 나오는 간단한 게임이며 플레이어의 공간인지능력을 테스트하는 게임입니다. 아래 링크를 통해 다운 받으실 수 있으니 많은 관��
chipmunk-plump-plump.tistory.com
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
Adapter (어댑터) (9) | 2020.04.22 |
---|---|
MVVM (Model-View-ViewModel) (0) | 2020.04.09 |
MVC (Model-View-Controller) (0) | 2020.04.09 |
Command (커맨드) (0) | 2020.04.09 |
Strategy (스트레티지) (0) | 2020.04.09 |