Home » Analiză şi proiectare

Clasificarea primară Gamma-Helm-Johnson-Vlissides a şabloanelor de proiectare

21 May 2009 No Comment

Una din primele încercări de a clasifica şabloanele au realizat-o chiar autorii cărţii Design Patterns: Elements of Reusable Object-Oriented Software(Gamma, Helm, Johnson şi Vlissides, 1995). Desigur clasificarea aici este, mai degrabă, ca suport al organizării, decât suport al înţelegerii. Şi totuşi autorii ne oferă două criterii pentru completitudinea analizei: intenţie/scop(purpose) şi domeniu aplicare (scope) pentru organizarea catalogului de şabloane:

Purpose
Creational Structural Behavioral
Scope Class Factory Method Adapter Interpreter
Template Method
Object Abstract Factory
Builder
Prototype
Singleton
Adapter
Bridge
Composite
Decorator
Facade
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Flyweight
Observer
State
Strategy
Visitor

Sursa: Design Patterns Elements of Reusable Object-Oriented Software (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides).

Clasificarea GoF este „valabilă” şi astăzi, dar superficialitatea criteriilor care au stat la baza clasificării ridică uneori semne de întrebare la mulţi asupra localizării unor şabloane într-o grupă sau alta. Alan Shalloway, unul din autorii cărţii Design Patterns Explained. A new perspective on Object-Oriented Design (2000), iniţial a fost complet derutat de clasificarea prezentată de GoF şi menţiona:

When I first started studying design patterns, I was surprised to see the Bridge and Decorator patterns were structural patterns rather than behavioral patterns. After all, they seemed to be used to implement different behaviors. At the time, I simply did not understand the GoF’s classification system.

Astfel rând pe rând, au apărut noi şabloane şi sisteme de clasificare ale lor, care completau catalogul GoF fără însă să-i fi şubrezit mult „imaginea”.

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.