Patró de disseny (informàtica)

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

En l'enginyeria de programari, un patró de disseny és una solució general a un problema comú i recurrent en el disseny de programari. Un patró de disseny no és un disseny acabat que es pot transformar directament en codi; és una descripció o plantilla per resoldre un problema que es pot utilitzar en moltes situacions diferents.

Els patrons de disseny orientats a objectes normalment mostren relacions i interaccions entre classes o objectes, sense especificar les classes d'aplicació finals o objectes que hi estan implicats. Els algoritmes no són considerats patrons de disseny, ja que aquests resolen els problemes computacionals més que els problemes de disseny.

Taula de continguts

Història

Els patrons sorgiren com a concepte d'arquitectura de la mà de Christopher Alexander. El 1987, Kent Beck i Ward Cunningham començaren a experimentar amb la idea d'aplicar patrons a la programació i van presentar els resultats a la conferència d'OOPSLA aquell mateix any. En els anys següents, Beck, Cunningham i altres investigaren aquesll treball.

Els patrons de disseny guanyaren popularitat en la informàtica després de la publicació del llibre Design Patterns: Elements of Reusable Object-Oriented Software l'any 1994.

Patrons Creacionals

  • Abstract Factory (Fabrica abstracta): Permet treballar amb objectes de diferents families de manera que aquestes families no es barregin, però fent que el tipus de familia utilitzat sigui transparent.
  • Factory Method (Mètode de fabricació): Centralitza en una classe constructora la creació d'objectes d'un subtipus d'un tipus determinat, ocultant a l'usuari la casuística per escollir el subtipus a crear.
  • Builder (Constructor virtual): Abstrau el procés de creació d'un objecte complex, centralitzant-lo en un únic punt.
  • Prototype (Prototip): Crea nous objectes clonant-los d'una instància existent.
  • Singleton (Instància única): Garantitza l'existència d'una única instància per una classe i la creació d'un mecanisme d'accés global per aquesta instància.

Patrons Estructurals

  • Adapter (Adaptador): Adapta una interfícia perquè pugui ser utilitzada per una classe que, d'altra manera, no podria.
  • Bridge (Pont): Desacobla una abstracció de la seva implementació.
  • Composite (Objecte compost): Permet tractar objectes compostos com si es tractés d'un de sol.
  • Decorator (Envolcall): Afegeix funcionalitats a una classe dinàmicament.
  • Facade (Façana): Proveeix d'una interfície unificada simple per accedir a una interfície o grup d'interfícies d'un subsistema.
  • Flyweight (Pes lleuger): Redueix la redundància quan gran quantitat d'objectes posseeixen idèntica informació.
  • Proxy : Manté un representat d'un objecte.

Patrons de Comportament

  • Chain of Responsibility (Cadena de responsabilitat): Permet establir la línea que han de seguir els missatges perque els objectes executin una tasca indicada.
  • Command (Ordre): Encapsula una operació en un objecte, permetent executar aquesta operació sense necessitat de conèixer-ne el contingut.
  • Interpreter (Intèrpret): Donat un llenguatge, en defineix la gramàtica així com les eines necessàries per interpretar-lo.
  • Iterator (Iterador): Permet realitzar recorreguts sobre objectes compostos independentment de la seva implementació.
  • Mediator (Mediador): Defineix un objecte que coordini la comunicació entre objectes de diferents classes, però que funcionen com un conjunt.
  • Memento (Record): Permet tornar a estats anteriors del sistema.
  • Observer (Observador): Defineix una dependència de un a molts entre objectes, de manera que quan un objecte canvia d'estat es notifiqui i s'actualitzin automàticament tots els objectes que en depenen.
  • State (Estat): Permet que un objecte canvii el seu comportament cada vegada que canvii el seu estat intern.
  • Strategy (Estratègia): Permet disposar de diversos mètodes per a resoldre un problema i escollir-ne un en temps d'execució.
  • Template Method (Mètode plantilla): Defineix en una operació l'esquelet d'un algoritme, delegant a les subclasses alguns dels passos, el que permet que les subclasses redefineixin certs passos d'un algoritme sense canviar-ne l'estructura.
  • Visitor (Visitant): Aquest patró serveix per indicar que algú (visitador) ha visitat quelcom i així saber que ha estat visitat per un visitador.

Enllaços externs


This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net