thumb|350px|MVC koncept. Puna crta prikazuje direktnu povezanost dok isprekidana prikazuje indirektnu povezanost kroz promatrača Model–View–Controller (MVC) je obrazac softverske arhitekture. Koristi se u softverskom inženjeringu za odvajanje pojedinih dijelova aplikacije u komponente ovisno o njihovoj namjeni. Ovaj se obrazac u početku koristio za dizajniranje grafičkog korisničkog sučelja, kako bi bio zadovoljen princip jednoznačne namjene (Single responsibility principle), no u novije vrijeme koristi se i za razvoj web aplikacija. Popularni programski jezici imaju posebna MVC okruženja (frameworke) koji pomažu pri implementaciji ovog obrasca (Spring Boot, .NET, JavaScriptMVC i drugi).

Komponente Model Model je središnja komponenta ovog uzorka, koji predstavlja dinamičku podatkovnu strukturu aplikacije, neovisnu o korisničkom sučelju i ponašanjima aplikacije.Burbeck, Steve (1992) Applications Programming in Smalltalk-80:How to use Model–View–Controller (MVC) U web aplikacijama, tipizacija jednog modela obično predstavlja strukturu jedne tablice u bazi podataka aplikacije.

View View (pogled) predstavlja predložak sučelja s kojim korisnik može interaktirati. View obično prima predodređeni model, čijim se podatcima popunjavaju dijelovi sučelja.

Controller Controller (upravitelj) je odgovoran za interakcije korisnika s aplikacijom. Aplikacije često imaju definirani usmjerivač (router) koji određuje koji zahtjev ide kojem upravitelju, koju je metodu Controllera nužno pozvati, i koje informacije joj treba proslijediti. Ovisno o prirodi korisničkog zahtjeva, Controller može dohvaćati podatke iz baze podataka, mijenjati podatke u modelu, i stvarati nove, privremene modele. Zadnja akcija Controllera je obično pozivanje pogleda i proslijeđivanje modela za prikaz.

Interakcije Obrazac također definira i dopuštene interakcije između komponenti.Buschmann, Frank (1996) Pattern-Oriented Software Architecture. Model opisuje strukturu, tipizaciju, prava pristupa i ponašanje podatkovnih entiteta korištenih u aplikaciji. Pogled (view) odgovoran je za prezentaciju modela u predodređenom obliku. Upravitelj (controller) odgovara na korisničke upite i izvodi interakcije sa objektima modela. On prima podatke od korisnika, po potrebi vrši njihovu validaciju, interaktira s modelom i vraća pogled.

Poveznice Slični obrasci Action–domain–responder Entity-control-boundary Model–view–adapter Model–view–presenter Model–view–viewmodel Presentation–abstraction–control Principi objektnog dizajna Princip jednoznačne namjene (SRP) Princip klasne otvorenosti (OCP) Liskovljev princip supstitucije (LSP) Princip segregacije sučelja (ISP)

Izvori

Kategorija:Dizajn programske podrške