MVP | |
---|---|
Presentatör för modellvy | |
Strukturera |
|
Relaterade mallar | Model-View-Controller |
Beskrivs i Design Patterns | Inte |
Model-View-Presenter (MVP) är ett designmönster som härletts från MVC som används främst för att bygga användargränssnittet .
Presentatörselementet i det här mönstret tar på sig funktionaliteten hos en medlare (liknande en kontroller i MVC) och ansvarar för att hantera användargränssnittshändelser (t.ex. musanvändning ) på samma sätt som en vy vanligtvis är ansvarig i andra mönster.
MVP är ett designmönster för användargränssnitt som har utvecklats för att underlätta automatiserad enhetstestning och förbättra separationen av problem i presentationslogik (separation av logik från display):
Vanligtvis skapar en instans av vyn (vyn) en instans av representanten och ger den en referens till sig själv. Samtidigt arbetar Representanten med Synen i abstrakt form, genom dess gränssnitt . När en View-händelse utlöses, anropar den en specifik View-metod som inte har några parametrar eller returvärde. Representanten tar emot de data om användargränssnittets tillstånd som är nödvändiga för att metoden ska fungera genom View-gränssnittet och genom den överför även data från Modellen och andra resultat av dess arbete till View.
public class MyModel { private int _state = 0 ; public MyModel ( initState ) { _state = initState ; } public getState (){ return _state ; } } public class MyView : IView { private IPresenter _presenter ; public MyView () { _presenter = new MyPresenter ( this ); } } public class MyPresenter : IPresenter { privat IView _view ; privat MyModel _myModel ; public MyPresenter ( IView view ) { _view = view ; _myModel = ny MinModel ( 1 ); } }MVP dök upp som ett alternativ till MVC. En detaljerad analys finns i en artikel av Martin Fowler [1] [2] [3] [4] [5] , samt i en artikel av Derek Greer [6] .