Sunteți pe pagina 1din 6

Sabloane orientate obiect

Proiectarea orientat pe obiecte a software-ului presupune identificarea de obiecte, abstractizarea lor n clase de granularitate potrivit, definirea interfeelor i ierarhiilor de motenire, stabilirea relaiilor ntre aceste clase. Soluia trebuie s rezolve problema i s fie n acelai timp suficient de flexibil pentru a rezista la noi cerine i probleme ce pot apare n timp. Proiectanii cu experien refolosesc soluiile bune de cte ori au ocazia. Exist grupri de clase sau obiecte care se repet n cele mai diferite sisteme. Acestea rezolv probleme specifice, folosirea lor fac proiectele mai flexibile, mai elegante, reutilizabile. Un proiectant care stpnete un set de asemenea abloane le poate aplica imediat la noile proiecte fr a mai fi nevoit s le redescopere. abloanele ce se pot refolosi pot fi general valabile sau specifice unui domeniu, de exemplu pentru probleme de concuren, sisteme distribuite, programare n timp real, etc.

Ce este un sablon de proiectare?


Un ablon de proiectare este o metoda formal de documentare a unei soluii de succes la o problem de proiectare. Ideea a fost introdus de arhitectul Christopher Alexander i a fost adaptat la numeroase discipline fiind utilizat i n programare. n programare un design pattern reprezint o soluie a unei probleme frecvent ntlnite n procesul de proiectare a unui soft (n software design). Un design pattern nu reprezint o soluie ce poate fi transferat direct n cod ci o descriere a cum se poate rezolva o problem. n obiect-orientare un design pattern arat de obicei relaiile i interaciunile dintre clase sau obiecte far a specifica ns clasele sau obiectele finale ce vor fi folosite n aplicaie. Algoritmii nu sunt considerai design patterns pentru c rezolv probleme de calcul i nu probleme de design.

Ce utilitate au?
abloanele de proiectare pot mri viteza procesului dezvoltare a unui soft prin oferirea unor paradigme de dezvoltare ncercate i testate n probleme similare. Procesul de proiectare a unui soft presupune i analizarea unor probleme ce pot deveni vizibile abia trziu n procesul de implementare. Refolosirea abloanelor de proiectare poate ajuta n prevenirea unor probleme majore ce pot fi cauzate de aspecte subtile care au nu au fost remarcate n procesul de proiectare. De asemenea folosirea acestor abloane poate uura nelegerea codului pentru dezvoltatorii i arhitecii software familiari cu abloanele respective. Pot aprea ns i dezavantaje n urma folosirii unor design patterns. Deoarece abloanele de proiectare sunt concepute n general pentru a fi flexibile, folosirea lor poate duce uneori la o mrire nejustificat a complexitii proiectului ce poate mri timpul de dezvoltare i afecta perfomanele produsului final.

Clasificarea
abloanele de proiectare pot fi clasificate n funcie de tipul problemei pe care o rezolv. Astfel ele pot fi mprite n: Sabloane fundamentale Sabloane creationale - abloane ce se ocup cu crearea obiectelor Sabloane structurale - abloane ce trateaz relaiile dintre entiti Sabloane comportamentale - abloane ce trateaz comunicarea dintre obiecte Sabloane de concurenta Puterea sistemelor dezvoltate folosind metodologii i tehnologii orientate pe obiecte se datoreaz, n mare msur, posibilitii reutilizrii diferitelor elemente rezultate n urma procesului de dezvoltare. Astfel, reutilizarea anumitor soluii (dezvoltate n proiecte anterioare) poate aprea n diferite etape ale procesului de dezvoltare: Prin intermediul abloanelor orientate obiect aa cum se va arta n subcapitolul urmtor, utilizarea abloanelor ofer posibilitatea reutilizrii la nivelul etapelor de analiz (abloane de analiz),
2

proiectare (abloane de proiectare i arhitecturale) i la nivelul codului (abloane de implementare).

n general, un ablon are 4 elemente eseniale: 1. Numele ablonului


reprezentare care poate fi utilizat pentru a descrie pe scurt problema de proiectare, soluiile i consecinele ei. Un vocabular mbogit cu astfel de termeni permite programatorilor s comunice mai facil ntre ei i uureaz modul de gndire i analiz a proiectelor.

2. Problema
descrie situaia n care se aplic ablonul. Uneori descrie i o list de condiii ce ar trebui ndeplinite pentru a avea sens aplicarea ablonului.

3. Soluia
descrie elementele care compun design-ul, relaiile, responsabilitile i colaborrile acestora. Soluia nu este o implementare concret, ci o descriere abstract a tiparului care poate fi aplicat n cazul situaiilor descrise de problema

4. Consecinele
reprezint rezultatele obinute i compromisurile care trebuie fcute atunci cnd se aplic ablonul. Acestea au importan critic atunci cnd se evalueaz posibilele alternative pentru rezolvarea problemei.

Descrierea abloanelor de proiectare


O descriere a unui ablon trebuie s captureze produsul final al procesului de proiectare. Pentru a putea reutiliza design-ul, trebuie s nregistrm deciziile, alternativele i compromisurile care au condus la obinerea ablonului. Nu trebuie uitate exemplele concrete, acestea exemplificnd cel mai uor funcionalitatea ablonului. Numele i clasificarea ablonului: va face parte din vocabularul de proiectant Definiie: ce face? care este raiunea?... Motivaie: scenariu care ilustreaz problema de rezolvat Aplicabilitate: situaiile n care poate fi aplicat Structur: reprezentare grafic a claselor (UML) Participani: clasele/obiectele Colaborri: modul n care participanii comunic

Consecine: msura n care ablonul reuete s rezolve problema propus Implementare: tehnici speciale ce pot fi folosite, existena unor elemente specifice limbajului folosit Exemple: fragmente de cod concrete Utilizri cunoscute: exemple de folosire n sisteme reale

abloane nrudite: abloane strns legate, principalele diferene

Ce este MVC?
MVC, sau Model-View-Controller este un sablon arhitectural folosit in industria de software development(inclusiv web development). Aceasta modalitate de lucru reuseste cu succes izolarea partii logice de interfata proiectului, rezultand in aplicatii extrem de usor de modificat. In organizarea MVC, modelul reprezinta informatia (datele) de care are nevoie aplicatia, viewerul corespunde cu elementele de interfata iar controller-ul reprezinta sistemul comunicativ si decizional ce proceseaza datele informationale, facand legatura intre model si view.

Despre Model, View si Controller


Modelul reprezinta partea de hard-programming, partea logica a aplicatiei. El are in responsabilitate actiunile si operatiile asupra datelor, autentificarea utilizatorilor, integrarea diverselor clase ce permit procesarea informatiilor din diverse baze de date. View-ul se ocupa de afisarea datelor, practic aceasta parte a programului va avea grija de cum vede end-userul informatia procesata de controller. O data ce functiile sunt executate de model, viewului ii sunt oferite rezultatele, iar acesta le va trimite catre browser. In general viewul este o mini-aplicatie ce ajuta la randarea unor informatii, avand la baza diverse template-uri. Controller-ul reprezinta creierul aplicatiei. Aceasta face legatura intre model si view, intre actiunile userului si partea decizionala a aplicatiei. In functie de nevoile utilizatorului, controllerul apeleaza diverse functii definite special pentru sectiunea de site in care se afla userul. Functia se va folosi de model pentru a prelucra (extrage,
5

actualiza) datele, dupa care informatiile noi vor fi trimise catre view, ce le va afisa apoi prin template-uri.