Sunteți pe pagina 1din 5

Metoda FACTORY ABSTRACT FACTORY

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

Sablonul PROTOTYPE SINGLETON


Scop Scop
Specificaţi tipul obiectelor care se Asigură ca o clasă să aibă doar o
creează folosind o instanţă prototipică singură instanţă şi furnizează un punct de
Creaţi obiecte noi copiind acest acces global la ea
prototip Aplicabilitate
Aplicabilitate dorim exact o instanţă a unei clase
când un sistem trebuie să fie accesibilitate pentru clienţi dintr-un
independent de cum sunt create, compuse şi singur punct
reprezentate produsele sale şi când clasele de dorim ca instanţa să fie extensibilă
instanţiat sunt specificate la execuţie poate permite deasemenea şi un set
evitaţi construirea unei ierarhii de numărabil de instanţe
clase-factory paralelă cu ierarhia claselor de optimizare faţă de vizibilitatea globală
produse mai bine decât o clasă statică:
nu se poate răzgândi
metode niciodată virtuale
BUILDER COMMAND
Scop Scop
Separă construirea unui obiect Încapsulează cereri ca obiecte, şi
complex de reprezentarea sa, astfel încât permite:
acelaşi proces de construcţie poate genera parametrizarea clienţilor cu
reprezentări diferite diferite cereri
Aplicabilitate înlănţuirea sau log-area
algoritmul pentru crearea obiectului cererilor
complex trebuie să fie independent de părţile suport pentru operaţii anulabile
ce compun obiectul şi de modul lor de (UNDO)
asamblare; Aplicabilitate
procesul de construcţie trebuie să Parametrizarea obiectelor
permită reprezentări diferite pentru obiectul Specificarea, înlănţuirea, şi executarea
construit; cererilor la diferite momente
Suport undo
Modelarea tranzacţiilor
structurarea sistemelor
construite pe operaţii primitive, în jurul
operaţiilor de nivel înalt
interfaţa comună => invocarea
identică a tuturor tranzacţiilor
ITERATOR
Scop
Furnizează o modalitate de accesare
secvenţială a elementelor unui agregat, fără a
expune reprezentarea care stă la baza
acestora
Aplicabilitate MEMENTO
Pentru a accesa conţinutul unui obiect Scop
agregat fără să îi expuneţi reprezentarea Captează şi externalizează starea
internă internă a unui obiect astfel încât obiectul poate
Pentru a susţine traversări multiple ale fi restaurat în această stare mai târziu, fără a
obiectelor agregat sparge încapsularea
Pentru a furniza o interfaţă uniformă de Aplicabilitate
traversare a diferitelor structuri agregat (i.e. (o parte din) starea unui obiect trebuie
pentru a susţine iteraţii polimorfice) salvată pentru a readuce mai târziu obiectul în
această stare
O interfaţă directă pentru obţinerea
stării ar expune detalii de implementare şi ar
sparge încapsularea obiectului
OBSERVER STRATEGY
Scop Scop
Defineşte o dependenţă de tipul unul- Defineşte o familie de algoritmi,
la-mai-mulţi între obiecte astfel încât atunci încapsulează fiecare algoritm, îi face
când un obiect îşi schimbă starea, toate interschimbabili
dependenţele sale sunt anunţate şi actualizate Permite algoritmului să varieze
automat independent de clienţii ce îl folosesc
Aplicabilitate Aplicabilitate
Când o abstracţiune are două aspecte, Sunt necesare variante diferite ale unui
una dependentă de cealaltă; încapsularea algoritm
acestor aspecte în obiecte diferite permite Un algoritm foloseşte date despre care
varierea şi refolosirea lor independentă; clienţii nu trebuie să ştie
Când modificarea unui obiect solicită evită expunerea structurilor de
modificarea altora, şi nu ştim exact câte date complexe, specifice algoritmului
obiecte trebuie modificate (modificări dinamice, Multe clase relaţionate diferă doar prin
la execuţie); comportament
Când un obiect trebuie să poată configurează o clasă cu un
notifica alte obiecte fără să presupună cine comportament particular
sunt acestea (CUPLAJ REDUS ÎNTRE
ACESTE OBIECTE)

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

S-ar putea să vă placă și