Está en la página 1de 7

UNIVERSIDAD TECNICA

DE MANABI

TAREA DE PROGRAMACIÓN III


Ing. Cotera Daniel Cedeño
Mera Vicente Andrés
Índice
1. Patrones de diseño..............................................................................................................................2
1.1. Funcionamiento...........................................................................................................................2
1.2. Características..............................................................................................................................2
1.3. Ejemplo de patrones de diseño...................................................................................................3
1.4. Catálogo de patrones de diseño..................................................................................................3
2. Patrones de construcción....................................................................................................................5
3. Patrones de estructuración.................................................................................................................5
4. Patrones de comportamiento..............................................................................................................5
5. Bibliografía...........................................................................................................................................5
1. Patrones de diseño

Un patrón de diseño constituye una solución a un problema de diseño recurrente en


programación orientada a objetos. Básicamente consiste en un diagrama de objetos está
constituido por un conjunto de objetos descritos por clases y las relaciones que enlazan los
objetos.

1.1. Funcionamiento.

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).

1.2. Características

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.

Los patrones de diseño se describen desde la sección 2 - Patrones de construcción hasta la


sección 4 - Patrones de comportamiento. Para cada patrón se presentan los siguientes elementos:

• El nombre del patrón.

• La descripción del patrón.

• Un ejemplo describiendo el problema y la solución basada en el patrón descrito mediante


un diagrama de clases UML. En este diagrama, se describe el cuerpo de los métodos utilizando
notas.

• La estructura genérica del patrón, a saber:

• Su esquema, extraído de cualquier contexto particular, bajo la forma de un diagrama de


clases UML.
• La lista de participantes del patrón.

• Las colaboraciones en el patrón.

• Los dominios de la aplicación del patrón.

1.3. Ejemplo de patron de diseño

Los patrones de diseño están basados en las buenas prácticas de la programación orientada a
objetos. Por ejemplo, la figura 1.1 muestra el patrón Template method que se describe en el
capítulo El patrón Template Method. En este patrón, el método calculaPrecioConIVA invoca al
método calculaIVA abstracto de la clase Pedido. Está definido en las subclases de Pedido, a
saber, las clases PedidoEspaña y PedidoFrancia. En efecto, el IVA varía en función del país. Al
método calculaPrecioConIVA se le llama "modelo" (template method). Introduce un algoritmo
basado en un método abstracto.

1.4. Catálogo de patrones de diseño

1. Abstract Factory: tiene como objetivo la creación de objetos reagrupados en familias sin
tener que conocer las clases concretas destinadas a la creación de estos objetos.
2. Builder: permite separar la construcción de objetos complejos de su implementación de
modo que un cliente pueda crear estos objetos complejos con implementaciones diferentes.
3. Factory Method: tiene como objetivo presentar un método abstracto para la creación de un
objeto reportando a las subclases concretas la creación efectiva.
4. Prototype: permite crear nuevos objetos por duplicación de objetos existentes llamados
prototipos que disponen de la capacidad de clonación.
5. Singleton: permite asegurar que de una clase concreta existe una única instancia y
proporciona un método único que la devuelve.
6. Adapter: tiene como objetivo convertir la interfaz de una clase existente en la interfaz
esperada por los clientes también existentes para que puedan trabajar de forma conjunta.
7. Bridge: tiene como objetivo separar los aspectos conceptuales de una jerarquía de clases de
su implementación.
8. Composite: proporciona un marco de diseño de una composición de objetos con una
profundidad de composición variable, basando el diseño en un árbol.
9. Decorator: permite agregar dinámicamente funcionalidades suplementarias a un objeto.
10. Facade: tiene como objetivo reagrupar las interfaces de un conjunto de objetos en una
interfaz unificada que resulte más fácil de utilizar.
11. Flyweight: facilita la compartición de un conjunto importante de objetos con granularidad
muy fina.
12. Proxy: construye un objeto que se substituye por otro objeto y que controla su acceso.
13. Chain of responsibility: crea una cadena de objetos tal que si un objeto de la cadena no
puede responder a una petición, la pueda transmitir a sus sucesores hasta que uno de ellos
responda.
14. Command: tiene como objetivo transformar una consulta en un objeto, facilitando
operaciones como la anulación, la actualización de consultas y su seguimiento.
15. Interpreter: proporciona un marco para dar una representación mediante objetos de la
gramática de un lenguaje con el objetivo de evaluar, interpretándolas, expresiones escritas en
este lenguaje.
16. Iterator: proporciona un acceso secuencial a una colección de objetos sin que los clientes se
preocupen de la implementación de esta colección.
17. Mediator: construye un objeto cuya vocación es la gestión y el control de las interacciones
en el seno de un conjunto de objetos sin que estos elementos se conozcan mutuamente.
18. Memento: salvaguarda y restaura el estado de un objeto.
19. Observer: construye una dependencia entre un sujeto y sus observadores de modo que cada
modificación del sujeto sea notificada a los observadores para que puedan actualizar su
estado.
20. State: permite a un objeto adaptar su comportamiento en función de su estado interno.
21. Strategy: adapta el comportamiento y los algoritmos de un objeto en función de una
necesidad concreta sin por ello cargar las interacciones con los clientes de este objeto.
22. Template Method: permite reportar en las subclases ciertas etapas de una de las operaciones
de un objeto, estando éstas descritas en las subclases.
23. Visitor: construye una operación a realizar en los elementos de un conjunto de objetos. Es
posible agregar nuevas operaciones sin modificar las clases de estos objetos.

2. Patrones de construcción

Su objetivo es la abstracción de los mecanismos de creación de objetos. Los


mecanismos de instanciación de clases concretas se encapsulan en los patrones. En el caso de
que se modifique el conjunto de clases concretas a instanciar, las modificaciones necesarias en
el sistema serán mínimas o inexistentes.

3. Patrones de estructuración

Su objetivo es abstraer la interfaz de un objeto o de un conjunto de objetos de su


implementación. En el caso de un conjunto de objetos, el objetivo también es abstraer la
interfaz de las relaciones de herencia o de composición presentes en el conjunto.

4. Patrones de comportamiento

Proporcionan soluciones para estructurar los datos y los objetos, así como para organizar las
interacciones distribuyendo el procesamiento y los algoritmos entre los objetos.
5. Bibliografía
 http://siul02.si.ehu.es/~alfredo/iso/06Patrones.pdf
 https://www.fceia.unr.edu.ar/ingsoft/Contribuciones/Patrones.pdf
 https://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o

También podría gustarte