G o F
G o F
G o F
I. INTRODUCCIÓN .................................................................................................................... 6
Presentación ............................................................................................................................... 10
Problemática ........................................................................................................................... 10
1. Descripción ...................................................................................................................... 11
a) Ejemplo .................................................................................................................... 11
b) Estructura ................................................................................................................. 12
1. Descripción ...................................................................................................................... 14
a) Ejemplo .................................................................................................................... 14
b) Estructura ................................................................................................................. 15
1. Descripción ...................................................................................................................... 17
a) Ejemplo .................................................................................................................... 17
b) Estructura ................................................................................................................. 18
c) Dominios de uso ....................................................................................................... 19
1. Descripción ...................................................................................................................... 20
a) Ejemplo .................................................................................................................... 20
b) Estructura ................................................................................................................. 21
E. EL PATRON SINGLETON............................................................................................... 23
1. Descripción ...................................................................................................................... 23
a) Ejemplo .................................................................................................................... 23
b) Estructura ................................................................................................................. 23
Presentación ............................................................................................................................... 25
Soluciones propuestas por los patrones de construcción ........ Error! Bookmark not defined.
A. EL PATRON ADAPTER................................................................................................... 26
VIII. Bibliografía......................................................................................................................... 36
LISTA DE TABLAS
LISTA DE FIGURAS
Ilustración A-1: Estructura del patrón Abstract Factory ............................................................................................... 11
Ilustración A-2: Estructura del patrón Abstract Factory ............................................................................................... 12
Ilustración B-1: El patrón Builder aplicado a la generación de documentación ........................................................... 14
Ilustración B-2: Estructura del patrón Builder .............................................................................................................. 15
Ilustración B-3: Diagrama de secuencia del patrón Builder ......................................................................................... 16
Ilustración C-1: El patrón Factory Method aplicado a los clientes y sus pedidos ......................................................... 17
Ilustración C-2: Estructura del patrón Factory Method ................................................................................................ 18
Ilustración D-1: El patrón Prototype aplicado a la creación de documentación de contenido variable ....................... 20
Ilustración D-2: Estructura del patrón Prototype ......................................................................................................... 21
Patrones GOF de diseño de Software 5
problema conocido y frecuente. Referencias > Insertar nota al pie (Word lleva la numeración
automática)
Los patrones responden a problemas de diseño de aplicaciones en el marco de la
programación orientada a objetos. Se trata de soluciones conocidas y probadas cuyo diseño
proviene de la experiencia de los programadores. No existe un aspecto teórico en los patrones, en
particular no existe una formalización (a diferencia de los algoritmos).
Los patrones de diseño están basados en las buenas prácticas de la programación orientada
a objetos.
Los patrones se introducen en 1995 con el libro del llamado "GoF", de Gang of Four
(en referencia a la "banda de los cuatro" autores), llamado "Design Patterns -
Elements of Reusable Object-Oriented Software" escrito por Erich Gamma, Richard
Helm, Ralph Johnson y John Vlissides. [1, p. 12].
1
Se encuentran patrones de clases y objetos de comunicación recurrentes en muchos sistemas OO. Estos patrones
resuelven problemas de diseño específicos y hacen el diseño flexible y reusable.
Patrones GOF de diseño de Software 7
b) Estructura
(1) Diagrama de Clases
B. EL PATRON BUILDER
1. Descripción
El objetivo del patrón Builder es abstraer la construcción de objetos
complejos de su implementación, de modo que un cliente pueda crear objetos
complejos sin tener que preocuparse de las diferencias en su implantación.
a) Ejemplo
b) Estructura
(1) Diagrama de Clases
(3) Colaboraciones
El cliente crea un constructor concreto y un director. El
director construye, bajo demanda del cliente, invocando al
constructor y reenvía el resultado al cliente.
Ilustración C-1: El patrón Factory Method aplicado a los clientes y sus pedidos
Patrones GOF de diseño de Software 18
b) Estructura
(1) Diagrama de Clases
D. EL PATRON PROTOTYPE
1. Descripción
El objetivo de este patrón es la creación de nuevos objetos mediante
duplicación de objetos existentes llamados prototipos que disponen de la capacidad
de clonación.
a) Ejemplo
b) Estructura
(1) Diagrama de Clases
E. EL PATRON SINGLETON
1. Descripción
El patrón Singleton tiene como objetivo asegurar que una clase sólo posee
una instancia y proporcionar un método de clase único que devuelva esta instancia.
En ciertos casos es útil gestionar clases que posean una única instancia. En
el marco de los patrones de construcción, podemos citar el caso de una fábrica de
productos (patrón Abstract Factory) del que sólo es necesario crear una instancia.
a) Ejemplo
(3) Colaboraciones
Cada cliente de la clase Singleton accede a la instancia única
mediante el método de clase Instance. No puede crear nuevas
instancias utilizando el operador habitual de instanciación (operador
new), que está bloqueado.
c) Dominios de uso
Sólo debe existir una única instancia de una clase.
Esta instancia sólo debe estar accesible mediante un método de clase.
El uso del patrón Singleton ofrece a su vez la posibilidad de dejar de
utilizar variables globales.
Patrones GOF de diseño de Software 25
A. EL PATRON ADAPTER
1. Descripción
El objetivo del patrón Adapter es convertir la interfaz de una clase existente
en la interfaz esperada por los clientes también existentes de modo que puedan
trabajar de manera conjunta. Se trata de conferir a una clase existente una nueva
interfaz para responder a las necesidades de los clientes.
2. Ejemplo
a) Estructura
EL PATRON BRIDGE
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON COMPOSITE
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON DECORATOR
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON FACADE
Descripción
Ejemplo
Estructura
Patrones GOF de diseño de Software 30
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON FLYWEIGHT
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON PROXY
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
Patrones GOF de diseño de Software 31
Ejemplos en Java
EL PATRON ITERATOR
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON MEDIATOR
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON MEMENTO
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON OBSERVER
Descripción
Ejemplo
Patrones GOF de diseño de Software 33
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON STATE
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON STRATEGY
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
EL PATRON TEMPLATE METHOD
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Patrones GOF de diseño de Software 34
Dominios de uso
Ejemplos en Java
EL PATRON VISITOR
Descripción
Ejemplo
Estructura
Diagrama de Clases
Participantes
Colaboraciones
Dominios de uso
Ejemplos en Java
Patrones GOF de diseño de Software 35
XI. CONCLUSIONES
Son las interpretaciones finales que recopilan los datos de la investigación, describe lo que se
obtuvo, qué se logró y cuáles son los resultados. Guardan relación directa con lo que se mencionó
en el planteamiento del problema. Pueden confirmar las hipótesis.
Patrones GOF de diseño de Software 36
VIII. Bibliografía
[1] L. Debrauwer, Patrones de diseño en Java. Los 23 modelos de diseño y sus soluciones
ilustradas en UML 2 y Java, 987-2-7460-8051-5 ed., E. ENI, Ed., Barcelona: ENI, 2013.