Articles

MVP 아키텍처 패턴

이 기사에서는 MVP 패턴에 대해 알아 보겠습니다. 그러나 확실히 MVC 패턴과 비교할 때 약간의 변화가 있습니다. 그래서 우리는 그것을 사용하는 방법,MVC 패턴과 MVP 패턴을 구별하는 방법을 이해할 것입니다.

시작합시다.

  • 문제 분석
  • 의 정의는 MVP 패턴
  • 사용하는 경우
  • 혜택을&단점
  • 포장

문제 분석

주의 태어났 MVP 패턴으로 이미 많은 사람들로부터 사랑받으로 MVC 패턴이다. 그러나 MVP 는 다음과 같은 MVC 패턴의 몇 가지 단점을 방지하는 데 사용됩니다.

  • MVC 패턴에서 뷰와 모델은 서로 상호 작용할 수 있습니다. 따라서 일반적으로 모델에서 데이터의 유효성을 검사하거나보기에서 데이터 논리를 사용합니다. 따라서 자동화 된 단위 테스트를 어렵게 만듭니다.
  • 보안과 관련이 있습니다.

의 정의된 이 패턴

에 따르면 wikipedia.com 우리는 정의 MVP 패턴

MVP pattern is a derivation of the Model-View-Controller (MVC) architectural pattern, and is used mostly for building user interfaces.In MVP, the presenter assumes the functionality of the middle-man.In MVP, all presetation logic is pushed to the presenter.

과 MVP 패턴에서 유래 1990 년대 초반에서 Taligent,조인트 벤처의 Apple,IBM, Hewlett-Packard.

아래는 MVP 패턴의 각 부분의 내용입니다.

  • 모델에는 엔티티와 서비스가 있습니다.

    엔티티는 다른 이유를 활용하기 위해 데이터베이스의 테이블과 매핑되는 데이터를 포함하는 데 사용됩니다.

    서비스를 사용할 수 있습 DAO 패턴,또는 저장 패턴,얇은 레이어 사이에는 응용 프로그램 계층 및 데이터 액세스를 계층입니다. 일반적으로 로컬 또는 원격에서 데이터베이스를 사용하여 CRUD 작동을 관리합니다.

  • 뷰에는 사용자와 상호 작용하는 책임이 있습니다.

    그것은 어떤 논리를 포함하지 않습니다. 사용자 입력 및 명령(이벤트)을 발표자에게 라우팅합니다.뷰에는 일반적으로 발표자에 대한 참조가 있습니다.

  • 발표자는 뷰와 모델 사이의 중간 부분입니다. 그것은 Mvc 패턴에서 컨트롤러와 동일한 역할을 할 것입니다.

    모든 비즈니스 로직과 데이터를 논리,유효성을 입력받는 이벤트 뷰,변환 데이터 보기에서 모델링하거나에서 모델이 구현되는 강연가입니다.

    비하면 보기와 컨트롤러에서 MVC 패턴,보기 및 발표자에 존재하는 MVP 패턴은 완전히 분리되어 각각에서 다른과 그들은 통신에 의해 인터페이스입니다. (발표자와 상호 작용하망 보기 인터페이스를 통해,즉,발표자는 모두 수행할 수 있습니다 프레젠테이션 및 탐색의 작업 없이 모든 의존성에의 실제 UI 기술을 사용되는)

    리 시퀀스 다이어그램의 MVP 패턴:

사용하는 경우

  • 우리의 스크린은bi-directional-flow,그것이 의미하는 사용자가 상호 작용을 요청해야 할 뭔가에서 우리의 모델,그리고 이 요청의 결과에 영향을 미칠 것입니다.

  • 모델의 업데이트에 영향을받는 뷰는 매우 제한적입니다.

  • MVP 패턴을 사용하지 않는 경우 UI 입 업데이트 없이 사용자 상호 작용,다음과 같 업데이트 UI 이벤트에서 일어나는 모델의 이 방법은 가까운된 이보다 더 MVP.

혜택을&단점

  1. 혜택을
    • View 하지 않는 상호작용과 직접 모델입니다. 이를 통해 Mvc 보다 뷰 구현 bettern 을 분리하고 발표자 및 모델을보다 쉽게 자동화 된 단위 테스트를 수행 할 수 있습니다.

    • 웹에서 창 또는 모바일로 UI 를 변경하는 기능은 매우 쉽습니다.

    • Low maintaince 비용.

  2. 단점이 있
    • 발표자하는 경향이 확장을 거대한 모든 것을 알고있는 클래스 우리가 주의를 기울이지 않는다면 충분한 것이다 우리의 코드에 따라 하나의 책임을 원칙으로 합니다.

    • 복잡성이 증가했습니다.

    • 추가 학습 곡선.

몇 가지 패턴과 관련이 있는 MVP 패턴

  • Application Controller-는 경우에는 발표자와 상호 작용하는 응용 프로그램 컨트롤러,발표자가 필요하지 않 페이지의 흐름과 화면 탐색 논리입니다. 이렇게하면 페이지 흐름을 업데이트하기가 더 쉬워집니다.

  • Observer pattern

포장

  • 최종 사용자와 상호 작용하는 뷰입니다.

  • 하나의 뷰는 하나의 발표자에게만 매핑됩니다.

  • 뷰는 발표자를 참조하지만 모델에 대한 참조가 없습니다. 그리고 발표자는 또한 그와 관련된 견해를 알고 있습니다.

  • 보기와 발표자 사이의 패턴 시설 양방향 통신.

  • 패시브 뷰 및 감독 컨트롤러와 같은 MVP 패턴의 다른 두 가지 구현이 있습니다.

    • 수동 뷰는 발표자에 의해 완전히 제어됩니다. MVP 패시브 뷰를 구현함으로써 동시성 및 멀티 스레딩을 처리하는 것이 훨씬 쉽습니다.

    • 에서 감독 발표자,뷰와 직접 상호 작용 모델을 수행하는 어떤 간단한 데이터 바인딩 할 수 있는 선언적으로 정의하지 않고,발표자입니다. 발표자가 모델을 업데이트합니다. 선언적으로 지정할 수없는 복잡한 UI 논리가 필요할 때만 뷰의 상태를 변경합니다.

    • 비교하여 다른 변화의 MVP 과 같은 수동 보기 감독 발표자 패턴은 간단한 코드보다 더 높은 우선 순위를 완료 테스트 편의성도 높아집니다. 감독 발표자 패턴은 데이터 바인딩을 사용하기 때문에 다른 MVP 패턴보다 코드가 덜 필요합니다. 간단한 UI 변경으로 인해 뷰를 업데이트하기 위해 발표자의 코드 변경이 필요하지 않으므로 코드를 유지 관리하기가 더 쉽습니다.

참조:

https://www.linkedin.com/pulse/mvp-architecture-pattern-small-article-khaled-kassem/

Book Architectural Patterns_ Uncover essential patterns in the most indispensable realm of enterprise architecture

https://www.oreilly.com/library/view/architectural-patterns/9781787287495/38abcb95-0392-4127-a3fa-b80ac2807aa9.xhtml

The other idea about Presenter in MVP pattern and Controller in MVC pattern

http://hannesdorfmann.com/mosby/mvp/

Choose MVP pattern over MVC pattern

Why Do You Need to Choose MVP Over MVC Android Architectural Pattern?

Examples for MVP pattern

http://aviadezra.blogspot.com/2008/10/model-view-presenter-design-pattern.html

https://www.raywenderlich.com/7026-getting-started-with-mvp-model-view-presenter-on-android

https://www.linkedin.com/pulse/when-use-mvc-mvp-mvvm-nothing-ahmed-adel/

A Model View Presenter (MVP) implementation with ASP.NET

iv 나는 이것이 어떻게 작동하는지 잘 모르겠습니다.10)