Naposledy změněno 15. 9. 2008 Edituj Historie Poslední změny

Model-View-Presenter (MVP)

V poslední době se neustále mluví o návrhovém vzoru MVC (Model-View-Controller). Co to vlastně je? A k čemu je to dobré? MVC je spíše než návrhový vzor softwarová architektura, která rozděluje aplikaci do tří vrstev: na datový model, uživatelské rozhraní a řídicí logiku. Přičemž modifikace některé z nich má pouze minimální vliv na ostatní.

Když se nad tím zamyslíte, každá část kódu webových aplikací skutečně spadá do jedné z těchto kategorií. MVC však říká, že tyto části je nutné oddělit do samostatných komponent nebo modulů. V praxi se ukázalo, že jde o velmi užitečný přístup. Vývojáři si ověřili, že tato separace je nezbytná pro udržení přehledného kódu – obzvláště v případech, kdy na jedné aplikaci pracuje více lidí.

MVC dále určuje vztah jednotlivých komponent, který je znázorněn na obrázku:

  • Model zajišťuje přístup k datům a manipulaci s nimi.
  • View (pohled) převádí data reprezentovaná modelem do podoby vhodné k prezentaci uživateli.
  • Controller (řadič) reaguje na události pocházející od uživatele a zajišťuje změny v modelu nebo v pohledu.

Tento princip poprvé popsal Trygve Reenskaug v roce 1979. Dnes je velmi populární právě u webových aplikací, jenže často jde o tvrzení pramenící z jeho pochopení. Ve své původní podobně jej vlastně nepoužívá nikdo. Role a vztahy jednotlivých vrstev se často chápou velmi volně. To je také důvod, proč se Nette Framework hlásí k MVC jen jako k duševně spřízněné architektuře.

Logice Nette Frameworku daleko lépe odpovídá nepříliš známý vzor MVP, tedy Model-View-Presenter. Zjednodušeně tak můžeme říct, že presenter v Nette je totéž, co controller v jiných frameworcích. Pokud máte zájem se o MVP dozvědět více, doporučuji vám přečíst MVP: Model-View-Presenter od Mika Potela.