Este libro presenta los 23 patrones de diseño (design patterns) fundamentales de forma concisa y práctica, ilustrándolos con ejemplos relevantes y rápidos de entender. Cada ejemplo se describe en UML y Java en forma de un pequeño programa, completo y ejecutable. Para cada patrón, el autor detalla su nombre, el problema correspondiente, la solución aportada, sus dominios de aplicación y su estructura genérica.
El libro está...
Este libro presenta los 23 patrones de diseño (design patterns) fundamentales de forma concisa y práctica, ilustrándolos con ejemplos relevantes y rápidos de entender. Cada ejemplo se describe en UML y Java en forma de un pequeño programa, completo y ejecutable. Para cada patrón, el autor detalla su nombre, el problema correspondiente, la solución aportada, sus dominios de aplicación y su estructura genérica.
El libro está dirigido a diseñadores y desarrolladores de Programación Orientada a Objetos. Para entenderlo bien, es preferible tener algunos conocimientos de los principales elementos de los diagramas de clases UML y del lenguaje Java.
El libro está organizado en 5 partes. En la primera, el autor introduce la noción de patrón de diseño. Las tres partes siguientes detallan cada una de las tres familias de patrones de diseño:patrones de construcción, patrones de estructuración y patrones de comportamiento. Tras estudiar las tres variantes de patrones existentes, mostrando la gran flexibilidad de implementación de estos modelos, la última parte presenta, dentro de un capítulo que enriquece esta nueva edición, la forma de rediseñar el código existente utilizando patrones a través de numerosos ejemplos. También se introduce el patrón compuesto MVC (Model-View-Controller). De este modo, el lector puede percibir fácilmente las cualidades del diseño por patrones.
Los ejemplos utilizados en el libro son el resultado de una aplicación de venta de vehículos online y pueden descargarse en el sitio web www.ediciones-eni.com.
Conceptos avanzados de la programación orientada a objetos
1. El tipado de las variables
2. El vínculo dinámico
3. La sobrecarga de métodos
4. La genericidad
a. La noción de clase genérica
b. Instanciación de los parámetrosde tipo
c. La genericidad y la herencia
5. Las interfaces
a. La realización de las interfaces
b. La especialización de las interfaces
c. La diferencia entre las clases abstractas y las interfaces
6. Las clases internas: un soporte para la composiciónde objetos
Los principios del diseño orientado a objetos
1. La reificación
2. El diseño modular
3. La abstracción
4. La reutilización de clases
Ejercicios
Enunciado de los ejercicios
1. Creación de tarjetas de pago
a. Creación en función del cliente
b. Creación con ayuda de una fábrica
2. Autorización de tarjetas de pago
3. Sistema de archivos
4. Navegador gráfico de objetos
5. Estados de la vida profesional de una persona
6. Caché de un diccionario persistente de objetos
Corrección de los ejercicios
1. Creación de tarjetas de pago
a. Creación en función del cliente
b. Creación con ayuda de una fábrica
2. Autorización de tarjetas de pago
3. Sistema de archivos
4. Navegador gráfico de objetos
5. Estados de la vida profesional de una persona
6. Caché de un diccionario persistente de objetos
Laurent DEBRAUWER
Laurent Debrauwer es doctor en informática por la Universidad de Lille 1. Especialista en el enfoque orientado a objetos, enseña UML y patrones de diseño en la Universidad de Luxemburgo. También dirige Securiquest, una empresa especializada en seguridad informática y formación UML.