sablonul de proiectare model view controller

21
Sablonul De Proiectare Model View Controller Mihai-Razvan Patruna

Upload: iulia-georgiana

Post on 09-Nov-2015

75 views

Category:

Documents


12 download

DESCRIPTION

MVDC=

TRANSCRIPT

Sablonul De Proiectare Model View Controller

Sablonul De Proiectare Model View ControllerMihai-Razvan Patruna Un sablon reprezint o soluie comun a unei probleme ntr-un anumit context.Arhitectul Christopher Alexander definea sabloanele de proiectare astfel: Fiecare ablon descrie o problem care apare mereu n domeniul nostru de activitate i indic esena soluiei acelei probleme ntr-un mod care permite utilizarea soluiei de nenumrate ori n contexte diferite.Ce este un Sablon de Proiectare?Proiectarea unui software presupune luarea unor decizii a caror corectitudine este testata mai tarziu la partea de implementare. Unul din avantajele folosirii sabloanelor de proiectare este acela ca poate duce la cresterea vitezei de dezvoltare a software-ului, cat si a calitatii acestuia, utilizand solutii testate, a caror eficacitate a fost dovedita.

De ce sunt utile sabloanele de proiectare?Paradigma MVC se refera la izolarea logicii interne a unei aplicatii de partea sa de prezentare (interfata), prin impartirea responsabilitatilor. Organizarea MVC, ofera posibilitatea modificarii independente a componentelor si faciliteaza reutilizarea. Acest lucru va rezulta in aplicatii extrem de usor de modificat.

De ce sa utilizam sablonulModel View Controller? Trygve Reenskaug a introdus MVC in limbajul Smalltalk-76 in timp ce vizita compania Xerox Parc (companie de cercetare si dezvoltare in Palo Alto, California, cu o reputatie foarte buna pentru contributiile sale in Tehnologia Informatiei si Sisteme Hardware), in anii 1970. In 1980, Jim Althoff si alte personae au implementat o versiune de MVC pentru biblioteca de clase a limbajului Smalltalk-80. De-abia mai tarziu, in anul 1988, intr-un articol din The Journal of Object Technology, MVC a fost exprimat ca un concept general.

Scurt IstoricConceptul Model View ControllerAplicatia software este impartita in trei parti interconectate, pentru a separa reprezentarea interna a informatiei de modul in care aceasta este prezentata sau acceptata de catre utilizator.

Modelul, ce reprezinta elementul central MVC, manipuleaza operatiunile logice si de utilizare de informatie pentru a rezulta o forma usor de inteles. Acesta pastreaza, in general datele carora li se doreste a adauga o vizualizare numindu-se in acest caz, modele de date (data model). ModelVizualizarea este reprezentarea grafica a modelului, descriind pentru componenta modul cum arata (look). Mai exact, aceasta se refera la exprimarea ultimei forme a datelor: interfata grafica ce interactioneaza cu utilizatorul final. Rolul sau este de a pastra pe ecran reprezentarea actualizata, primind astfel mesaje de la model si controler.

ViewControlerul permite verificarea accesului la aplicatia noastra. Pot fi fisiere, scripturi sau programe, in general orice informatie permisa de interfata. Astfel, putem diversifica continutul nostru de o forma dinamica si statica, in acelasi timp, determinand comportamentul (feel) componentei.

ControllerFiecare obiect MVC pastreaza o referinta catre catre celelalte obiect(e) cu care interactioneaza. Mai exact, instanta model are nevoie de o referinta utila instantei view la crearea prezentarii modelului, in timp ce partile de view si controller au nevoie fiecare de o referinta model la model si referinte reciproce, una catre cealalta. Comunicarea in cadrul MVC

Clasificarea Interactiunilordirecte(linii continue): apeluri directe de metode ale obiectelor.De exemplu:controller-ul apeleaza metode ale modelului pentru a-l actualiza in urma actiunilor utilizatoruluiindirecte(linii intrerupte): generarea si captarea evenimentelor.De exemplu: modelul genereaza un eveniment in momentul unei modificari, ce poate fi captat deview, fara ca modelul sa fie constient de implementarea particulara a acestuia.

Separarea responsabilitatilor

Permite reutilizarea logicii de business in cadrul aplicatiilorPot fi dezvoltate mai multe interfete grafice fara a afecta celelalte componenteAjuta dezvoltatorii sa fie focusati la un moment dat pe un singur aspect al aplicatiei. De exemplu, in ceea ce priveste interfata grafica, dezvoltatorii vor fi contrati doar pe aspectul vizual al aplicatiei, fara a avea legatura cu partea sa de logica.

Avantajele utilizarii MVCOfera o mai buna gestionare a timpului Permite ca interfata, logica sau input-ul unei aplicatii sa fie actualizate simultan, fara a afecta codul sursa.Permite ca raspunsurile la input-urile utilizatorului ( controller) sa fie usor modificate atat in timpul compilarii cat si al executiei.

Dezvoltarea aplicatiei de catre echipe separate in acelasi timp

Deoarece vizualizarea este separata de model si nu exista o dependenta directa intre acestea, interfata utilizator permite vizualizari multiple ale acelorasi date in acelasi timp. De exemplu, mai multe pagini intr-o aplicatie web pot utiliza acelasi model Vizualizarea multipla.

Cerintele utilizatorilor pentru interfetele grafice tind sa se schimbe foarte repede. Pot exista preferinte diferite pentru culori, fonturi, dimensiunea ecranului, si capacitatea de a putea fi utilizate pe dispozitive noi. Fiindca modelul nu depinde de vizualizare, adaugarea, modificarea sau inlaturarea tipurilor de vizualizare nu afecteaza sistemul in general, aceste schimbari putand fi realizate in ambele faze, compilare si/sau executie.

Adaptabilitate

De scris aiciiiiiiReutilizarea coduluiCodeIgniter este un framework open source pentru aplicatii web( un set de instrumente), utilizat pentru a construi pagini web cu continut dinamic in PHP (limbaj de scripting de uz general, utilizat la scara larga). CodeIgniter este bazat pe sablonul de proiectare Model View Controller, ce asigura o separare foarte buna intre partea de logica si prezentare. Exemple de utilizare a sablonului MVCModelul este reprezentat de structurarea datelor, putand fi utilizat optional de catre cei care doresc o utilizare mai traditionala a sablonului MVC. Modelul va contine clase utile pentru recuperarea, inserarea si actualizarea informatiilor din bazele de date corespunzatoare.

ModelSe refera la informatia care este prezentata utilizatorului. Utilizarea vizualizarii este optionala.In mod normal, o vizualizare ar fi o o pagina web simpla, dar in CodeIgniter, aceasta poate fi si un fragment dintr-o pagina, cum ar fi antetul sau subsolul. Poate fi de asemenea si o pagina RSS, sau orice alt tip de pagina. ViewControlerele reprezinta partea cea mai importanta a aplicatiei, deoarece determina cum ar trebui procesate cererile HTTP, actionand ca mediator intre model si vizualizare.Un controler este, de fapt, un fisier ce contine o clasa denumita intr-un mod in care poate fi asociata unui URI( Identificator Uniform de Resurse).Controller

Multumesc pentru atentie