0% encontró este documento útil (0 votos)
228 vistas10 páginas

Patrones GoF

Cargado por

Hermes Gil
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
228 vistas10 páginas

Patrones GoF

Cargado por

Hermes Gil
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

GANG OF FOUR (GoF)

Patrones de diseño Gang of Four

Hermes Gil

Politecnico Grancolombiano
Abstract

Los patrones de diseño “Gang of Four” o “Pandilla de los 4”, son 23 tipos de patrones

enumerados en el libro “Design Patterns”. Gamma, Helm, Johnson, Vlissides. 1995, y sirven

para enfrentarse para problemas comunes y concretos.


Patrones GoF

El término de patrón fue dado por primera vez en el año 1977 por el arquitecto

Christopher Alexander, quien dio en su libro A Pattern Language la siguiente definición:

“Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, para

describir después el núcleo de la solución a ese problema, de tal manera que esa solución

pueda ser usada más de un millón de veces sin hacerlo ni siquiera dos veces de la misma

forma”. En la ingeniería del software, un patrón constituye el apoyo para la solución a los

problemas más comunes que se presentan durante las diferentes etapas del ciclo de vida del

software. Ahora bien, los patrones de diseño según The Gang of Four -GOF- “describen

soluciones simples y elegantes a problemas específicos en el diseño de software orientado a

objetos” (Gamma et al, 1994), Eric Braude define los patrones de diseño como

“combinaciones de componentes, casi siempre clases y objetos que por experiencia se sabe

que resuelven ciertos problemas de diseño comunes” (Braude, 2003). En términos generales

es posible decir que un patrón de diseño es una solución a un problema recurrente en el

diseño de software.

Clasificación de los patrones GoF

Los patrones GoF se clasifican en 3 grandes grupos, según el propósito para el que serán

usados. Los 3 tipos de patrones GoF son:

Patrones de creación

Tratan de la inicialización y configuración de clases y objetos.

Patrones estructurales

Tratan de desacoplar interfaz e implementación de clases y objetos.

Patrones de comportamiento

Tratan de las interacciones dinámicas entre sociedades de clases y objetos.


Patrones de creación.

Abstract Factory

Proporciona una interfaz para crear familias de objetos o que dependen entre sí, sin

especificar sus clases concretas.

Builder

Separa la construcción de un objeto complejo de su representación, de forma que el

mismo proceso de construcción pueda crear diferentes representaciones.

Factory Method

Define una interfaz para crear un objeto, pero deja que sean las subclases quienes

decidan qué clase instanciar. Permite que una clase delegue en sus subclases la creación de

objetos.

Prototype

Especifica los tipos de objetos a crear por medio de una instancia prototípica, y crear

nuevos objetos copiando este prototipo.

Singleton

Garantiza que una clase sólo tenga una instancia, y proporciona un punto de acceso global

a ella.

Patrones estructurales.

Adapter

Convierte la interfaz de una clase en otra distinta que es la que esperan los clientes.

Permiten que cooperen clases que de otra manera no podrían por tener interfaces

incompatibles.
Bridge

Desvincula una abstracción de su implementación, de manera que ambas puedan variar de

forma independiente.

Composite

Combina objetos en estructuras de árbol para representar jerarquías de parte-todo. Permite

que los clientes traten de manera uniforme a los objetos individuales y a los compuestos.

Decorator

Añade dinámicamente nuevas responsabilidades a un objeto, proporcionando una

alternativa flexible a la herencia para extender la funcionalidad.

Facade

Proporciona una interfaz unificada para un conjunto de interfaces de un subsistema.

Define una interfaz de alto nivel que hace que el subsistema sea más fácil de usar.

Flyweight

Usa el compartimiento para permitir un gran número de objetos de grano fino de forma

eficiente.

Proxy

Proporciona un sustituto o representante de otro objeto para controlar el acceso a éste.

Patrones de comportamiento.

Chain of Responsibility

Evita acoplar el emisor de una petición a su receptor, al dar a más de un objeto la

posibilidad de responder a la petición. Crea una cadena con los objetos receptores y pasa la

petición a través de la cadena hasta que esta sea tratada por algún objeto.
Command

Encapsula una petición en un objeto, permitiendo así parametrizar a los clientes con

distintas peticiones, encolar o llevar un registro de las peticiones y poder deshacer la

operaciones.

Interpreter

Dado un lenguaje, define una representación de su gramática junto con un intérprete que

usa dicha representación para interpretar las sentencias del lenguaje.

Iterator

Proporciona un modo de acceder secuencialmente a los elementos de un objeto agregado

sin exponer su representación interna.

Mediator

Define un objeto que encapsula cómo interactúan un conjunto de objetos. Promueve un

bajo acoplamiento al evitar que los objetos se refieran unos a otros explícitamente, y permite

variar la interacción entre ellos de forma independiente.

Memento

Representa y externaliza el estado interno de un objeto sin violar la encapsulación, de

forma que éste puede volver a dicho estado más tarde.

Observer

Define una dependencia de uno-a-muchos entre objetos, de forma que cuando un objeto

cambia de estado se notifica y actualizan automáticamente todos los objetos.

State

Permite que un objeto modifique su comportamiento cada vez que cambia su estado

interno. Parecerá que cambia la clase del objeto.


Strategy

Define una familia de algoritmos, encapsula uno de ellos y los hace intercambiables.

Permite que un algoritmo varíe independientemente de los clientes que lo usan.

Template Method

Define en una operación el esqueleto de un algoritmo, delegando en las subclases algunos

de sus pasos. Permite que las subclases redefinan ciertos pasos del algoritmo sin cambiar su

estructura.

Visitor

Representa una operación sobre los elementos de una estructura de objetos. Permite

definir una nueva operación sin cambiar las clases de los elementos sobre los que opera.
Referencias

Design Patterns”. Gamma, Helm, Johnson, Vlissides. 1995

[Link]

[Link]

[Link]

_of_Four_en_el_contexto_de_Procesos_de_Desarrollo_de_Aplicaciones_Orientadas_a

_la_Web
Apéndice

El objetivo principal de los patrones es facilitar la reutilización de diseños y

arquitecturas software que han tenido éxito capturando la experiencia y haciéndola accesible

a los no expertos.

El proceso de identificación de patrones de diseño GOF en procesos de desarrollo

software requiere de un conjunto de actividades; inicialmente se construye un conjunto de

criterios que permita establecer un punto de análisis para identificar los procesos de

desarrollo más representativos, siendo obligatorio cumplir estos criterios para catalogarlos

como válidos en este análisis, y obtener la muestra de procesos de desarrollo. El

cumplimiento de las condiciones que deben presentar los procesos de desarrollo es estricto e

importante, puesto que el objetivo de este trabajo de investigación consiste en obtener

resultados a partir del estudio de procesos de desarrollo formales, de esta manera, se

selecciona un grupo de procesos de desarrollo que cumplan con un estricto control de calidad

en las fases de requerimientos, diseño, desarrollo e implantación.

También podría gustarte