Model-view-controller

Z FI WIKI
(Přesměrováno z MVC)
Přejít na: navigace, hledání

MVC (Model-view-controller, někdy také označovaný jako Model-2) je obecný návrhový vzor pro interaktivní aplikace, který rozděluje datový model aplikace, uživatelské rozhraní a řídicí logiku do tří nezávislých komponent tak, že modifikace některé z nich má minimální vliv na ostatní.

Vzhledem ke svému charakteru nebývá někdy označován jako klasický návrhový vzor, ale jako architektonický vzor (architectural pattern; Buschmann, et al 1996) nebo agregační návrhový vzor (aggregate design pattern).

Existuje také architektura Model 1, která odděluje pouze datový model od uživatelského rozhraní s řídící logikou.

Princip

  • Model (model) reprezentuje data a informace, s nimiž aplikace pracuje a které jsou prostřednictvím uživatelského rozhraní zpřístupněny uživateli.
  • View (pohled) zpřístupňuje informace reprezentované modelem uživateli.
  • Controller (řadič) řídí celý proces, reaguje na události (typicky pocházející od uživatele) a zajišťuje změny v modelu nebo v pohledu.

Někdy bývá mylně uváděno, že model reprezentuje data a controller aplikační logiku (bussines logic). To není pravda, aplikační logika by měla být součástí modelu, zatímco controller obsahuje pouze řídící logiku pro vlastní GUI. Pokud bychom do této řídící logiky začali vkládat i kód logiky aplikační, porušili bychom základní pravidlo oddělení aplikační a prezentační vrstvy. Správný postup tedy je, že controller přijme událost od uživatele a na jejím základě zavolá příslušnou metodu modelu, která teprve obsahuje příslušný kód aplikační logiky.

Zdroje informací