몬그로이

MVP 패턴 본문

Organizing Docs

MVP 패턴

Mon Groy 2024. 7. 17. 18:00

아키텍처 패턴의 하나,  MVP (Model–view–presenter)

MVP 패턴은 MVC 패턴의 변형 또는 발전형으로 볼 수 있다

  • Model: 사용자 입력에 대응하거나 보여지기 위한 데이타를 정의하는 인터페이스이다.
  • View: 데이타를 보여주고, 사용자 입력을 수신하는 수동적(passive) 인터페이스이다.
  • Presenter: Model로부터 데이타를 받아 View에 표시하기 위해 가공한다.

 

In MVP, the presenter assumes the functionality of the "middle-man". In MVP, all presentation logic is pushed to the presenter.
( MVP 패턴에서는, presenter 가 middle-man 의 기능을 맡는다. 모든 presentation 로직이 presenter 에게 push 된다)

 

MVC 와 MVP의 차이점

MVC와 다른점은 Model과 View가 직접적인 참조/호출 관계를 가지지 않는다는 점이다

 

  • Controller vs Presenter: Controller는 주로 사용자 입력을 처리하고 Model과 View를 업데이트하는 역할을 합니다. Presenter는 View와 Model 사이의 중개자 역할을 하며, View와 상호작용하는 비즈니스 로직도 처리합니다.
  • Service 레이어: MVC 패턴에서는 복잡한 비즈니스 로직을 Service 레이어에서 처리하며, 이 레이어는 Controller와 Model 사이에 위치합니다. MVP 패턴에서는 Presenter가 이러한 비즈니스 로직을 처리하는 경우가 많습니다.
  • View와의 상호작용: MVC 패턴에서는 View가 종종 Controller를 직접 호출하여 상호작용하는 반면, MVP 패턴에서는 View가 Presenter를 호출하고 Presenter가 Model과 상호작용합니다.

MVP 패턴의 장점

  • 유지보수성: View와 Presenter의 명확한 분리로 인해, 코드를 수정하거나 확장할 때 영향을 최소화할 수 있습니다.
  • 테스트 용이성: Presenter의 로직을 독립적으로 테스트할 수 있어, View의 구현에 의존하지 않고도 다양한 시나리오를 테스트할 수 있습니다.

 

 

 

 


 

참고

 

https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter

 

Model–view–presenter - Wikipedia

From Wikipedia, the free encyclopedia Software design pattern Diagram that depicts the model–view–presenter (MVP) GUI design pattern Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is use

en.wikipedia.org

https://62che.com/blog/architecture/mvc-mvp-mvvm-%EB%B0%94%EB%A1%9C%EC%95%8C%EA%B8%B0.html#mvp

 

MVC, MVP, MVVM 바로알기 | 유기체의 다락방

MVC, MVP, MVVM 바로알기 서두 이 글에서는 MVC, MVP, MVVM에 대해 제대로 정리해보고자 한다. 이런 구조들이 설명된 기존의 글들을 보면 설명이나 그림들이 꽤나 다르게 되어 있는 곳이 많아서 개인적

62che.com

https://recordsoflife.tistory.com/1140

 

MVC와 MVP 패턴의 차이점

1. 개요 이 사용방법(예제)에서는 Model View Controller 및 Model View Presenter 패턴 에 대해 알아봅니다 . 또한 그들 사이의 차이점에 대해서도 논의할 것입니다. 2. 디자인 패턴과 아키텍처 패턴 2.1. 건축

recordsoflife.tistory.com

 

 

 

 

'Organizing Docs' 카테고리의 다른 글

RDBMS 의 정규화  (0) 2024.07.18
NoSQL, RDBMS  (0) 2024.07.18
자바의 정석 7. 객체지향 프로그래밍2  (0) 2024.07.01
H2  (0) 2024.06.26
H2 연결 오류 해결하기  (0) 2024.06.26