Założenie MVC ma na celu odseparować interfejs użytkownika od warstwy logicznej. Czyniąc tak, zyskujemy możliwość wzbogacenia naszej biblioteki komponentów, mogących być wtórnie wdrażanych w naszych aplikacjach MVC. Czasami, dane albo relacja(**Przykładowo DataGrid**) która przynależy do interfejsu użytkownika(prezentuje jakieś dane), może być zawarte po stronie modelu. Stąd obiekty które wydawałyby się być z góry modelem tak naprawdę są częścią interfejsu, to znaczy widoku i kontrolera.
Na przykład: scrollbar, pozycje i sortowanie kolumn(**tłumacz: wspomniany DataGrid).
Wyżej wspomniane sytuacje, są czasem nazywane Application Model (Model aplikacji) i określa się je wzorcem MMVC, ponieważ występują dwa oddzielne modele.
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller
Jest możliwe wykorzystanie wzorca Adapter (Adaptator) aby wprowadzić możliwość rozmnożenia klas modelu lub aby wdrożyć inna cechę modelu aktywnego do modelu biernego, w celu uzyskania zamiany model biernego w aktywny.
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller
W aktywnym Modelu, klasy modelu posiadają mechanizm zawiadomień, zwykle stosuje się w tym celu wzorzec Obserwator. Dzięki takiemu rozwiązaniu, niepowiązany widok jak i komponenty kontrolera zostają poinformowane o zmianach zachodzących w modelu. Ponieważ te komponenty rejestrują siebie w modelu, a model nie ma pojęcia o specyfikacji widoku i kontrolera, to nie niszczy niezależności modelu.
Mechanizm zawiadomień dostarcza natychmiastowego uaktualnienia informacji, czyli cechy charakterystycznej dla aplikacji MVC z GUI (Graphical User Interfaces, graficzny interfejs użytkownika).
Tekst przełożony z angielskiego, oryginał znajduje się na:
http://www.phpwact.org/pattern/model_view_controller