MVP | |
---|---|
Præsentator for modelvisning | |
Struktur |
|
Relaterede skabeloner | Model-View-Controller |
Beskrevet i Design Patterns | Ikke |
Model-View-Presenter (MVP) er et designmønster afledt af MVC , der primært bruges til at bygge brugergrænsefladen .
Presenter-elementet i dette mønster overtager funktionaliteten af en mediator (svarende til en controller i MVC) og er ansvarlig for at håndtere brugergrænsefladehændelser (f.eks. musebrug ) på samme måde, som en visning normalt er ansvarlig i andre mønstre.
MVP er et brugergrænsefladedesignmønster, der blev udviklet for at lette automatiseret enhedstestning og forbedre adskillelse af bekymringer i præsentationslogik (adskillelse af logik fra display):
Normalt opretter en forekomst af visningen (visningen) en forekomst af repræsentanten og giver den en reference til sig selv. Samtidig arbejder Repræsentanten med Synet i abstrakt form, gennem dets grænseflade . Når en visningshændelse udløses, påkalder den en specifik visningsmetode, der ikke har nogen parametre eller returværdi. Repræsentanten modtager de data om tilstanden af brugergrænsefladen, der er nødvendige for, at metoden kan fungere gennem View-grænsefladen og overfører derigennem også data fra Modellen og andre resultater af dens arbejde til Viewen.
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 { private IView _view ; privat MyModel _myModel ; public MyPresenter ( IView view ) { _view = view ; _myModel = ny MinModel ( 1 ); } }MVP opstod som et alternativ til MVC. En detaljeret analyse kan findes i en artikel af Martin Fowler [1] [2] [3] [4] [5] , samt i en artikel af Derek Greer [6] .