MVC
separerar användargränssnittet från koden för datamodellen
användargränssnittet delas upp i den del av kod som visar modellen för användare och den delen av kod som tar input från användare
Model
en representation över den domän som programmeet arbetar med, innehåller domänlogik (smart)
får inte bero av V eller C
View
presenterar delar av modellen för användaren, gör inga egna beräkningar (dumb)
Controller
skickar styrsignaler till modeller och vyer utifrån input från användare, ska bara hantera extern input från användare och är ett tunt lager mellan användare och program (thinner)