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.
