MVC vs MVP
Mudelivaatekontroller (tuntud ka kui MVC) on spetsiaalselt tarkvaraehituses kasutatav arhitektuuriline muster. Seda konkreetset mustrit kasutatakse selleks, et eraldada nn domeeniloogika - mis on lihtsalt kasutaja jaoks mõeldud rakenduse loogika. See on sisendist ja esitlusest eraldatud (tuntud kui GUI) ning võimaldab iseseisvat arengut.
Model View Presenter (tuntud ka kui MVP) on MVC otsene permutatsioon. See on tarkvaraskeem (täpsemalt kasutajaliidese kujundusmuster), mis on loodud spetsiaalselt automatiseeritud üksuste testimise hõlbustamiseks ja esitlusloogikas tuntud probleemide eraldamise parandamiseks. Murede eraldamine on põhimõtteliselt protsess, mille käigus arvutiprogramm jaotatakse konkreetseteks funktsioonideks, mis ei kattu vastavalt nende toimimisele.
MVC mudeliosa on põhimõtteliselt muster, mis tähistab konkreetsete domeenide kaudu andmeid, mida kasutatakse rakenduse töötamiseks. Vaateosa muudab mudeli kasutajatele sobivaks interaktsiooniks - see on tavaliselt kasutajaliidese element. Lõpuks võtab kontrolleri osa kõige asjakohasemalt vastu sisendit. Tehes otsuseid mudelis leiduvate objektide kohta, töötab kontroller reageerimise katalüsaatorina.
MVP näidisosa määratleb andmed, mida kasutajaliideses kuvatakse (või mille alusel tegutsetakse). Vaateosas kuvatakse mudelis määratletud andmed ja saadetakse saatejuhile (kes tegutseb nende andmete alusel) kasutaja küsitud käsud (tuntud kui sündmused). Seejärel tegutseb saatejuht mudeli ja modelli vaate järgi. Sellisena on see võimeline andmeid hoidlatest (mudelis leidma), andmeid jätkama ja vormindama, et neid saaks hõlpsalt kuvada.
MVC-l on erinevaid variante. Juhtimisvoog toimub sellises järjekorras väga rangelt: esiteks suhtleb kasutaja liidesega (näiteks hiire nupu vajutamisega) ning seejärel hooldab kontroller sisestussündmuse eest ja muudab selle sobiv kasutaja toiming. Järgmisena teatab kontroller kasutaja tehtud teekonnale mudeli, mille tulemusel muutub mudel tõenäoliselt oma olekut (näiteks värskendusena). Seejärel esitab vaade mudelile kasutajaliidese genereerimiseks küsimuse. Lõpuks ootab kasutajaliides juhiseid, mis tsükli taaskäivitavad.
Kokkuvõte:
1. MVC on domeeniloogikat isoleeriv arhitektuurimuster; MVP on MVC järeltulija, mille eesmärk on aidata automatiseeritud üksuste testimisel ja probleemide lahususe parandamisel.
2. seoses MVC-ga kujutab mudel andmeid, vaade muudab mudeli kasutajasõbralikuks interaktsiooniks ja kontroller saab sisendi; MVP osas määratleb mudel andmed, vaade kuvab need ja saatejuht tegutseb mudeli ja selle vaate järgi.