Model–view–controller
obrazac softverske arhitekture From Wikipedia, the free encyclopedia
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)[1], no u novije vrijeme koristi se i za razvoj web aplikacija.[2] 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.[3] U web aplikacijama, tipizacija jednog modela obično predstavlja strukturu jedne tablice u bazi podataka aplikacije.[4][5][6]
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.[7]
- 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
Wikiwand - on
Seamless Wikipedia browsing. On steroids.