Programming

MVP Pattern 이란?!

Ms_Tony 2017. 12. 7. 15:55

 

MVP 패턴 !!

 

MVP 패턴이란?

  • 1990년대 초기 MS사에서 공개한, MVC 기반의 GUI를 처리하기 위한 패턴
  • MVC 패턴에 비해 Model과 View 간의 결합도를 낮추는데 초점을 맞춤.
  • View, Model, Presenter로 나뉨

 

장점 :

  • MVC 패턴에 비해 클래스별 코드가 짧아짐.
  • 코드를 나눔으로써 TDD가 수월해짐
  • View와 Model 간의 구분 가능
    • Presenter의 역할을 통해 View와 Model 간의 결합도를 낮출 수 있음
    • 결합도가 낮아짐에 따라 새로운 기능 추가 또는 변경 등, 유지보수 및 확장성이 좋아짐.
  • View와 Model의 사용법이 분리되면서 Clean Code가 가능하다.
  • Presenter의 역할을 통해 Model과 View 간의 결합도를 낮출 수

클래스의 역할에 따라 코드를 분배하는 패턴

 

(View, Presenter, Model)

View

  • 어플리케이션의 인터페이스
    • 사용자에게는 View가 곧 Interface
  • 실제 View에 접근하고 화면을 갱신하는 역할을 수행
  • Presenter에 의존적
    • 이벤트를 Presenter에 전달
    • Presenter에서 데이터를 전달받아서 사용자에게 알맞은 화면 제공
    • Presenter가 보내주는 데이터에 따라 로딩 / 경고 / 대화창 등을 표현

 

Presenter

  • Model과 View를 연결 (매개체)
    • MVP에서 Presenter는 기능/흐름을 제공
    • 요구사항이 Presenter의 기능에 대응
  • 사용자 요청에 반응
  • View의 흐름 제어


Model

  • 내부적으로 사용되는 데이터를 저장하고, 처리하는 역할.
  • ‘비즈니스 로직’과 ‘어플리케이션 데이터’
    • 인증
    • 위치 데이터
    • 그 외 네트워크 통신 등
  • Presenter가 요청한 작업을 수행



View는 또다시 Interface와 View Component(구현체)로 구분할 수있는데,

  • Interface
    • 사용자에게 보여질 기능을 정의
    • Presenter가 호출할 기능을 정의