Español | 8 Mb | Pdf | Autor: Laurent Debrauwer | Páginas: 229 | Pass:www.detodoprogramacion.org
Descripción:
Este libro presenta de forma concisa y práctica los 23 modelos de diseño (Design Patterns) descripción y soluciones ilustradas en UML 2 y Java fundamentales ilustrándolos mediante ejemplos adaptados y fáciles de comprender. Un design pattern o patrón de diseño consiste en un diagrama de objetos que forma una solución a un problema conocido y frecuente. El diagrama de objetos está constituido por un conjunto de objetos descritos por clases y las relaciones que enlazan los objetos.
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 basado 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.
Este patrón está basado en el polimorfismo, una propiedad importante de la programación orientada a objetos. El precio de un pedido en España o en Francia está sometido a un impuesto sobre el valor añadido. No obstante la tasa no es la misma, y el cálculo del IVA difiere en España y en Francia. Por consiguiente, el patrón Template method constituye una buena ilustración del polimorfismo.
En este libro se presentan los veintitrés patrones de diseño descritos en el libro de referencia del "GoF". Estos patrones son diversas respuestas a problemas conocidos de la programación orientada a objetos. La lista que sigue no es exhaustiva y es resultado, como hemos explicado, de la experiencia.
- 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.
- 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.
- 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.
- Prototype: permite crear nuevos objetos por duplicación de objetos existentes llamados prototipos que disponen de la capacidad de clonación.
- Singleton: permite asegurar que de una clase concreta existe una única instancia y proporciona un método único que la devuelve.
- 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.
- Bridge: tiene como objetivo separar los aspectos conceptuales de una jerarquía de clases de su implementación.
- 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.
- Decorator: permite agregar dinámicamente funcionalidades suplementarias a un objeto.
- Facade: tiene como objetivo reagrupar las interfaces de un conjunto de objetos en una interfaz unificada que resulte más fácil de utilizar.
- Flyweight: facilita la compartición de un conjunto importante de objetos con granularidad muy fina.
- Proxy: construye un objeto que se substituye por otro objeto y que controla su acceso.
- 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.
- Command: tiene como objetivo transformar una consulta en un objeto, facilitando operaciones como la anulación, la actualización de consultas y su seguimiento.
- 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.
- 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.
- 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.
- Memento: salvaguarda y restaura el estado de un objeto.
- 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.
- State: permite a un objeto adaptar su comportamiento en función de su estado interno.
- 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.
- Template Method: permite reportar en las subclases ciertas etapas de una de las operaciones de un objeto, estando éstas descritas en las subclases.
- 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.
Contenido
Prefacio
Parte 1: Introducción
Introducción a los patrones de diseño UML
Caso de estudio: venta online de vehículos
Parte 2: Patrones de construcción
Introducción a los patrones de construcción
El patrón Abstract Factory
El patrón Builder
El patrón Factory Method
El patron Prototype
El patrón Singleton
Parte 3: Patrones de estructuración
Introducción a los patrones de estructuración
El patrón Adapter
El patrón Bridge
El patrón Composite
El patrón Decorator
El patrón Facade
El patrón Flyweight
El patrón Proxy
Parte 4: Patrones de comportamiento
Introducción a los patrones de comportamiento
El patrón Chain of Responsability
El patrón Command
El patrón Interpreter
El patrón Iterator
El patrón Mediator
El patrón Memento
El patrón Observer
El patrón State
El patrón Strategy
El patrón Template Method
El patrón Visitor
Parte 5: Aplicación de los patrones
Composición y variación de patrones
El patrón Composite MVC
Los patrones en el diseño de aplicaciones
Ejercicios
No hay comentarios:
Publicar un comentario