Home » Analiză şi proiectare

Concretizarea clasificării GoF de Alan Shalloway şi James R. Trott

25 May 2009 No Comment

Autorii cărţii Design Patterns Explained (Alan Shalloway şi James R. Trott, 2000) au considerat important de a reevalua clasificarea GoF prin prisma decuplării obiectelor din sistem. Practic ei reconfigurează categoriile adăugând un nou grup, cel al şabloanelor de decuplare. Deşi majoritatea şabloanelor din acest grup fac parte din categoria şabloanelor comportamentale, autorii nu au recurs la localizarea şabloanelor într-o subcategorie, motivînd decuplarea ca trăsătură primară a acestora. Mai mult decât atât, ei nu exclud posibilitatea şabloanelor de a fi prezente în diverse grupe:

Purpose
Creational Structural Behavioral Decoupling
Abstract Factory
Builder
Factory Method
Prototype
Singleton
Adapter
Composite
Facade
Proxy – virtual
State
Strategy
Template Method
Visitor
Decorator
Bridge

Proxy – adding function
Chain of Responsibility
Iterator
Mediator
Memento
Observer
Proxy – accessibility

Grupul Creational este alcătuit din aceleaşi şabloane ale grupei omonime GoF şi la fel determină modalităţi de creare a obiectelor.

Grupul Structural oferă soluţii fie de modificare sau simplificare a interfeţei, fie de manipulare în acelaşi mod a obiectelor cu tipuri diferite sau chiar incompatibile. În mod evident lipsesc două şabloane remarcabile Decorator şi Bridge, pe care autorii le-au poziţionat în grupul şabloanelor Behavioral. Nu am găsit nici o referinţă spre un alt şablon tradiţional al acestei grupei, cum ar fi Flyweight, dar dacă aş analiza modalitatea lor de grupare, aş poziţiona acest şablon la fel în această grupă.

Grupul Behavioral este constituit din acele şabloane care permit în special adăugarea dinamică de noi funcţionalităţi, sau oferă soluţii pentru modificarea comportamentului (implementării), care nu este iminentă, dar posibilă. Din această cauză acestui grup i s-au alăturat şabloanele Decorator şi Bridge.

Nu am găsit menţionat dacă Interpreter şi Command fac parte din acest grup, dar nu exclud că autorii ar putea interpreta şi în felul următor intenţia(contextul) lor: Interpreter manipulează în acelaşi mod entităţile gramaticii, deci fără ezitare poate fi atribuit grupului Structural, Command este şablonul care permite „îmbrăcarea” diferitor funcţii (comenzi) în aceeaşi „haină”, deci oferă posibilitatea manipulării unor obiecte diferite în acelaşi mod şi poate fi şi el atribuit grupului Structural. Dar fără careva indici expliciţi nu doresc să speculez şi voi presupune că aceste şabloane sunt în acest grup Behavioral.

Grupul Decoupling cuprinde acele şabloane scopul primar al căror este decuplarea obiectelor unul de altul, în vederea obţinerii unui cod scalabil şi flexibil. Deşi autorii nu-şi argumentează suficient decizia, invocînd exprimarea viziunii proprii asupra înţelegerii şabloanelor, totuşi apariţia acestui grup este oarecum justificată.

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.