MVP | |
---|---|
Prezentátor zobrazení modelu | |
Struktura |
|
Související šablony | Model-View-Controller |
Popsáno v Návrhové vzory | Ne |
Model-View-Presenter (MVP) je návrhový vzor odvozený od MVC , který se používá především pro vytváření uživatelského rozhraní .
Prvek Presenter v tomto vzoru přebírá funkci prostředníka (podobně jako ovladač v MVC) a je zodpovědný za zpracování událostí uživatelského rozhraní (např. použití myši ) stejným způsobem, jako je obvykle zodpovědný pohled v jiných vzorech.
MVP je návrhový vzor uživatelského rozhraní, který byl vyvinut pro usnadnění automatizovaného testování jednotek a zlepšení oddělení problémů v prezentační logice (oddělení logiky od zobrazení):
Obvykle instance View (View) vytvoří instanci zástupce a předá jí odkaz na sebe. Zástupce zároveň pracuje s Pohledem v abstraktní podobě, přes jeho rozhraní . Když je vyvolána událost View, vyvolá specifickou metodu View, která nemá žádné parametry ani návratovou hodnotu. Zástupce přijímá údaje o stavu uživatelského rozhraní potřebné pro fungování metody přes rozhraní View a jeho prostřednictvím také přenáší data z Modelu a další výsledky své práce do 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 { private IView _view ; private MyModel _myModel ; public MyPresenter ( IView view ) { _view = view ; _myModel = nový MůjModel ( 1 ); } }MVP se objevil jako alternativa k MVC. Podrobný rozbor lze nalézt v článku Martina Fowlera [1] [2] [3] [4] [5] , stejně jako v článku Dereka Greera [6] .