Model-View-Presenter
E827354
Model-View-Presenter is a software architectural pattern that separates an application into model, view, and presenter components to improve testability and maintainability, particularly in user interface code.
Statements (49)
| Predicate | Object |
|---|---|
| instanceOf |
software architectural pattern
ⓘ
user interface architectural pattern ⓘ |
| abbreviation | MVP ⓘ |
| appliedIn | event-driven programming ⓘ |
| category |
architectural pattern
ⓘ
presentation layer pattern ⓘ |
| contrastsWith | Model-View-Controller in controller responsibilities ⓘ |
| decouples | view from model ⓘ |
| definesRoleOf |
Model
ⓘ
Presenter ⓘ View ⓘ |
| documentationLanguage | UML diagrams ⓘ |
| emphasizes |
passive view
ⓘ
supervising controller ⓘ |
| focusesOn |
keeping view as thin as possible
ⓘ
moving logic from view to presenter ⓘ |
| hasComponent |
Model
ⓘ
Presenter ⓘ View ⓘ |
| hasVariant |
Passive View
NERFINISHED
ⓘ
Supervising Controller ⓘ |
| influencedBy | Model-View-Controller NERFINISHED ⓘ |
| ModelRole |
encapsulates application data
ⓘ
encapsulates business logic ⓘ |
| originatedIn | user interface design community ⓘ |
| PresenterRole |
acts as mediator between view and model
ⓘ
handles presentation logic ⓘ updates model based on user input ⓘ updates view based on model ⓘ |
| primaryGoal |
improved maintainability
ⓘ
improved modularity ⓘ improved testability ⓘ separation of concerns ⓘ |
| similarTo | Model-View-Controller NERFINISHED ⓘ |
| supports |
mocking of views
ⓘ
test-driven development ⓘ unit testing of presentation logic ⓘ |
| typicalCommunication |
model not directly aware of view
GENERATED
ⓘ
presenter communicates with model GENERATED ⓘ view communicates with presenter GENERATED ⓘ |
| usedBy |
.NET developers
ⓘ
Android developers ⓘ Java developers ⓘ |
| usedIn |
desktop applications
ⓘ
graphical user interface applications ⓘ mobile applications ⓘ web applications ⓘ |
| ViewRole |
forwards user input to presenter
ⓘ
renders user interface ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.