Widok zależy od modelu. Zmiana modelu wymaga jednoczesnej zmiany widoku. Bardzo trudno jest osiągnąć klarowne oddzielenie modelu od widoku. Za przykład posłuży mamy warunek:
„przecenie koloruj na czerwono”
Na pierwszy rzut oka wydaje się, że jest to narzucony wymóg wyjścia i sprawdzanie wartości może się odbywać w widoku poprzez:
„jeśli wartość < 0 wtedy czerwone”
Lecz to zepsuło by założenia MVC. Po dalszej analizie okazuje się że prawdziwym warunkiem jest:
„przedstaw przekroczony stan bilansu na czerwono”
i definicja przekroczonego stanu =bilans <0 = powinien być przedstawiony w modelu zgodnie z specyfika wzorca. Bardzo prosto jest emigrować “logicznej dziedzinie” z modelu do widoku. W Template View znajduje się dalsza część dyskusji na ten temat.
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller
Zadaniem widoku jest uzyskiwanie danych od modelu i przedstawianie ich klientowi. Widok reprezentuje wyjście aplikacji. Widok zazwyczaj ma wolny dostęp do modelu, ale nie powinien on ingerować w jego stan. Jego zadaniem jest tylko odczytywanie informacje dostarczanych mu z modelu. Odczytywanie danych przez widok z modelu odbywa się przez udostępnione(publiczne) metod w klasie modelu.
W aktywnym modelu widok może zarejestrować sam siebie w modelu, dzięki temu może natychmiastowo reagować na zmiany zachodzące w modelu i zajmować się prezentacją danych.
Czasem używany jest sposób w którym składniki widoku mogą być w dowolny sposób połączone z modelem, takie postępowanie jest nazywane oprawa (binding).
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller
Model ma za zadanie enkapsulacji danych od reszty aplikacji, ponieważ jest on warstwą logiczna/biznesowa. Specyfika MVC ma czynić model nie zależnym od warstwy widoku i kontrolera, ponieważ te dwie warstwy odpowiadają razem za składanie interfejsu użytkownika. Obiekt może spełniać role modelu dla bardziej skomplikowanych połączeń niż te które wchodzą w skład MVC.
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller