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