Documente Academic
Documente Profesional
Documente Cultură
Sabloane IP
Sabloane IP
Scop Scop
Defineşte o interfaţă pentru crearea Oferă o interfaţă pentru crearea de
unui obiect, dar lasă subclasele să decidă ce familii de obiecte înrudite sau dependente fără
clasă să instanţieze. specificarea claselor lor concrete
Metoda Factory permite unei clase să Aplicabilitate
defere instanţierea subclaselor Sistemul trebuie să fie independent de
Cunoscut şi ca > Constructor Virtual cum sunt create, compuse şi reprezentate
Aplicabilitate produsele sale
O clasă nu poate anticipa clasa Sistemul trebuie configurat de una din
obiectelor pe care trebuie să le creeze mai multe familii de produse
O clasă doreşte ca subclasele sale să Trebuie forţat ca o familie de obiecte
specifice obiectele pe care le creează produs să fie folosite împreună
Clasele delegă responsibilitatea uneia
sau mai multor subclase ajutătoare
STATE
Scop
permite unui obiect să îşi modifice
comportamentul când i se modifică starea
internă
obiectul va părea că îşi
MEDIATOR schimbă clasa
Scop Aplicabilitate
Defineşte un obiect ce încapsulează comportamentul obiectului depinde de
cum interacţionează o mulţime de obiecte starea sa
Promovează cuplajul redus prin faptul trebuie să îşi modifice comportamentul
că obiectele nu mai fac referinţă direct unele la la execuţie în funcţie de stare
altele, permiţând varierea independentă a operaţii cu instrucţiuni condiţionale
interacţiunii lor multiple, depinzând de starea obiectului
Aplicabilitate starea reprezentată de una
O mulţime de obiecte comunică într-un sau mai multe constante enumerate
mod bine definit dar complex; mai multe operaţii cu aceeaşi
Interdependenţele sunt structură condiţională
nestructurate şi dificil de înţeles;
Refolosirea unui obiect este dificilă
deoarece comunică cu prea multe alte obiecte
Un comportament distribuit între mai
multe clase ar trebui să fie readaptabil fără
derivare
PROXY COMPOSITE
Scop Scop
Furnizează un surogat (substitut) Tratează obiectele individuale şi
pentru alt obiect pentru a controla accesul la el compunerile acestor obiecte uniform
Aplicabilitate Compune obiectele în structuri
Oricând este nevoie de o referinţă arborescente pentru a reprezenta agregări
către un obiect mai flexibilă sau mai sofisticată recursive
decât un simplu pointer Aplicabilitate
Proxy la distanţă reprezentarea ierarhiilor de obiecte de
Proxy virtual tip parte-întreg
Proxy de Protecţie abilitatea de a ignora diferenţa dintre
Proxy -accesorii (pointeri inteligenţi) compuneri de obiecte şi obiecte individuale
Previn ştergerea accidentală a
obiectelor (numără referinţele)
FLYWEIGHT
BRIDGE Scop
Scop Foloseşte partajarea pentru a suţine
Decuplează o abstracţiune de implementarea eficientă a unui număr mare de
implementarea sa obiecte cu granulaţie fină (structură complexă)-
Permite implementării să varieze de exemplu caractere individuale sau iconiţe
independent de abstracţiunea sa pe ecran
Abstracţiunea defineşte şi Aplicabilitate
implementează interfaţa O aplicaţie foloseşte un număr mare
Toate operaţiile din de obiecte
abstracţiune apelează metode din Costurile de stocare sunt ridicate din
obiectul de implementare cauza numărului mare de obiecte
Aplicabilitate Cea mai mare parte din starea unui
Evită legarea permanentă între o obiect poate fi făcută extrinsecă
abstracţiune şi implementarea sa Multe grupuri de obiecte se pot înlocui
Abstracţiunile şi implementările lor de un număr relativ mic de obiecte partajate,
trebuie să fie independentl extensibile prin odată ce am îlăturat starea extrinsecă
derivare Aplicaţia nu depinde de identitatea
Ascunde implementarea unei obiectelor. Întrucât obiectele flyweight pot fi
abstracţiuni complet de clienţi partajate, testele de identitate vor întoarce true
Codul lor nu trebuie să fie pentru obiecte conceptual distincte
recompilat când se modifică
implementarea
Partajează o implementare între mai
multe obiecte
Şi acest lucru trebuie ascuns de client
ADAPTER CHAIN OF RESPONSIBILITY
Scop Scop
Converteşte interfaţa unei clase într-o Decuplează transmiţătorul cererii de
altă interfaţă aşteptată de client primitor
Permite unor clase cu interfeţe diferite oferind mai multor obiecte
să lucreze împreună (prin “traducerea” şansa de a trata cererea
interfeţelor) Pune primitorii într-un lanţ şi transmite
Aplicabilitate cererea de-a lungul lanţului
Când dorim să folosim o clasă până ce un obiect o tratează
preexistentă, şi interfaţa acestei nu se Aplicabilitate
potriveşte cu interfaţa de care avem nevoie mai mult decât un obiect poate trata o
Vrem să creem o clasă reutilizabilă ce cerere
cooperează cu clase nerelaţionate şi mulţimea de obiecte ce pot trata
neprevăzute (i.e. clase ce pot avea interfeţe cererea trebuie să fie specificabilă dinamic
incompatibile) trimitem o cerere la mai multe obiecte
(doar pentru adaptor obiect) Când fără să specificăm primitorul
avem nevoie să folosim mai multe subclase
existente, dar nu e practic să derivăm din
fiecare pentru a le adapta interfaţa. Un obiect
adaptor poate adapta interfaţa clasei sale
părinte.
Structura CLASA
DECORATOR
Scop
Adaugă responsabilităţi unui obiect
Structura OBIECT particular, mai degrabă decât clasei sale
Ataşează dinamic responsabilităţi
adiţionale unui obiect.
O alternativă flexibilă la derivare
Cunoscut şi ca => Wrapper
Aplicabilitate
Adaugă responsabilităţi obiectelor
transparent şi dinamic
i.e. fără să afecteze alte
obiecte
Extinderea prin derivare nu e practică
poate duce la prea multe
subclase