r jest wzorcem architektonicznym organizującym w określony sposób strukturę aplikacji wyposażonej w graficzny interfejs użytkownika. Zakłada on podział aplikacji na trzy główne części:
to warstwa która reprezentuje logikę biznesową. W tej warstwie znajdują się obiekty, które służą do wykonywania operacji związanych z implementacją funkcjonalności aplikacji
to warstwa prezentacji danych (widoczna dla użytkownika). Odpowiedzialny jest za nic innego, jak prezentację wizualną użytkownikowi wyników, które są wynikiem działań logiki biznesowej (czyli Modelu)
odpowiedzialny jest za przyjmowanie danych od użytkownika oraz za reagowanie na akcje przez niego wykonywane, poprzez odświeżanie widoków (View), jak i aktualizację modeli (Model)
Podział na moduły porządkujące kod aplikacji, Oddzielenie logiki biznesowej od widoku, Brak zależności modelu od widoku, Ułatwienie odnalezienia konkretnej części kodu, Łatwiejsza rozbudowa poprzez modułową budowę.