Pomalo o informacionim tehnologijama
RSS icon Email icon Home icon
  • Arhitekturni uzori i MVC

    Posted on avgust 18th, 2008 Vladimir No comments

    Pre nego što počnem o ovome, mislim da treba da razgraničimo šta su nivoi a šta slojevi.
    Sloj (En. Layer)
    Nivo (En. Tier)

    Koja je razlika između ova dva? Iako na prvi pogled deluju kao sinonimi, razlika je ogromna. Kada se govori o slojevima, prvo se misli na logičkom nivou, dok se kod nivoa misli na fizičkom. Šta to znači u programiranju? S obzirom da ću se koncentrisati na .NET framework, koristiću termine koji su tamo standardni, ali verujem da će se i poklonici ostalih jezika snaći. Ako kažemo da imamo dve klase koje pripadaju različitim slojevima, to znači da su one u istom projektu, ali u okviru različitih namespace-ova. Dok ako kažemo da dve klase pripadaju različitim nivoima, to znači da pripadaju različitim projektima, pa čak i da su na različitim računarima nakon instalacije.

    Uzori arhitekture izražavaju fundamentalnu strukturnu organizaciju ili šemu sistema. Oni pružaju set predefinisanih podsistema, opisuju njihove odgovornosti i uključuju pravila i smernice za organizaciju odnosa između datih podsistema. Ono što je bitno kod arhitekturnih uzora, to je da oni nisu previše konkretni. Oni predstavljaju jednu ogromnu apstrakciju sistema, koja se može tumačiti i implementirati na više načina.

    Postoji više uzora arhitekture. MVC je samo jedan od njih. IBM je skupio neke ahtitekturne uzore koji se odnose na e-poslovanje. Možete ih pogledati ovde: http://www-128.ibm.com/developerworks/patterns/
    Ako želite da saznate više o arhitekturnim uzorima pogledajte http://wi.wu-wien.ac.at/home/uzdun/publications/ArchPatterns.pdf i http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science) , a ja ću se zadržati MVC uzoru

    MVC (Model – View – Controller) uzor je arhitekturni uzor koji organizuje aplikaciju u tri odvojena sloja: jedan za aplikacioni model sa prikazom podataka i biznis logikom, drugi za prezentaciju podatala korisniku i unos podataka i treći za kontroler koji prosleđuje zahteve i izvršava tok. Imajte na umu da arhitekturni uzori uzimaju olako termine kao što su sloj i nivo, jer im je svejedno da li će se MVC na primer implementirati u okviru jednog projekta ili više.

    Postoji više implementacija MVC uzora, ali dva najčešća imaju oblike kao na slikama

     image       image

    Pune linije predstavljaju direktne asocijacije, dok su isprekidane indirektne. Isprekidane linije se mogu implementirati preko događaja, ali je najpoželjnije da se implementira preko observer uzora, o kome ću malo kasnije kada budem pisao o GoF uzorima.

    Šta radi Kontroler:
    Upravlja tokom programa
    Odlučuje koji view da prikaže
    Odlučuje koji model da menja
    Upravlja izuzecima

    Šta radi View:
    Renderuje UI (HTML, GUI…)
    Omogućava prikaz korisnicima
    Prihvata i proverava da li su podaci validni

    Šta radi model:
    Sadrži poslovnu logiku
    Ima pristup nižim servisima
    Sadrži perzistentne objekte (iako je model sam po sebi tranzijentan)

    Leave a reply