Kezdőlap > elmélet > Mi fán terem az MVC?

Mi fán terem az MVC?

Néha ilyen elméletet tárgyaló cikkek is lesznek, már amennyire tőlem telik. Nem lesz tudományos színvonal, de azért érthető lesz.

Elsőnek az MVC-t veszem elő, ha már a Pong projekt kapcsán úgyis beleütköztem és használtam. Az MVC feloldása a Model-View-Control. Ez egy tervezési minta, aminek a lényege, hogy három elkülönülő részre bontjuk a programunkat. Modellre, a megjelenítőre és a vezérlőre. Ezen tervezési minta használatának több előnye is van. Az egyes részek fejlesztése teljesen elkülöníthető, csak az interfészek ismerete szükséges. Egy modellhez több egymástól független megjelenítő és vezérlő is kapcsolható és ezek akár különbözhetnek is (pl. konzolos vagy grafikus megjelenítés).

A modell a nevéből adódóan a modellt tartalmazza. Ez a program “lényegi” része, ide pakoljuk bele az üzleti logikát, azaz itt kap értelmet a puszta adat. Az adatokat sokszor adatbázisban tároljuk, az adatelérés is a modellhez tartozik (az MVC nem különböztet meg külön adatelérési réteget). A Pong program esetében ez például a pályát és a rajta lévő egységeket menedzselő rész. Nyilvántartja, hogy mi hol van a pályán, mekkora a sebessége a labdának, vagy éppen azt számolja ki, hogy a labda a következő lépésnél visszapattanjon, vagy haladjon tovább egyenesen.

A view, azaz a megjelenítő az adatok megjelenítéséért felel. Nem kell semmit tudnia a modell működéséről, csak az adatokat kell elkérnie tőle. Innentől már mindent megold maga. A Pong esetében egy Canvas-ra rajzoljuk ki a pályát és a rajta lévő elemeket.

A control, azaz a vezérlő egység interakciót biztosít a felhasználó számára. Jellemzően eseményeket dolgoz fel és válaszol rájuk.

A három rész együttes működését az alábbi ábra mutatja:

Beérkezik egy esemény, amit a vezérlő feldolgoz. Ezután értesíti a modellt és a megjelenítőt a változásokról. A modell elvégzi a saját feladatát, majd értesíti a megjelenítőt, s elküldi neki az új adatokat. A megjelenítő frissíti magát, majd minden kezdődik előröl, mikor egy másik esemény üt be.

Fontos megjegyezni, hogy a view nem fér hozzá közvetlenül a modellhez, és fordítva. A kapcsolatot a controller tartja fenn.

A teljes elszaparálást nagyon nehéz fentartani, ez megmutatkozott a Pong fejlesztése közben is. Viszont érdemes törekedni rá, mert ha csorbul az egyes részek szuverenitása, utána nehezebb új megjelenítőt vagy vezérlőt csatlakoztatni a modellre.

Kategóriák:elmélet Címkék:, ,

MINDEN VÉLEMÉNY SZÁMÍT!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Módosítás )

Twitter kép

You are commenting using your Twitter account. Log Out / Módosítás )

Facebook kép

You are commenting using your Facebook account. Log Out / Módosítás )

Kapcsolódás: %s

Follow

Get every new post delivered to your Inbox.