Introducción a los patrones de diseño

Hoy en día aprender patrones de diseño no es una cualidad más, si no una obligación. Y es que estudiar y comprender los patrones de diseño nos convierte en un mejor programador/arquitecto y es clave para conseguir una mejor posición en el mundo laboral.

Este libro fue creado con la intención de enseñar a sus lectores cómo utilizar los patrones de diseño de una forma clara y simple desde un enfoque práctico y con escenarios del mundo real.

Tengo que aceptar que este no es un libro convencional de patrones de diseño debido, principalmente, a que no sigue la misma estructura de las primordiales obras relacionadas con este tema. En su lugar, me quise enfocar en ofrecer una perspectiva del mundo real, en donde el lector pueda aprender a utilizar los patrones de diseño en entornos reales y que puedan ser aplicados a proyectos reales.
Cuando empecé a estudiar sobre patrones de diseño, me di cuenta que siempre se explicaban en escenarios irracionales que poco o ninguna vez podrías utilizar, como por ejemplo para aprender a crear figuras geométricas, hacer una pizza o crear una serie de clases de animales que ladren o maúllen; esos eran los ejemplos que siempre encontraba, que si bien explicaban el concepto, se complicaba entender cómo llevarlos a escenarios reales.

En este libro trato de ir un poco más allá de los ejemplos típicos para crear cosas realmente increíbles. Por ejemplo:

  • Crear tu propia consola de línea de comandos.
  • Crear tu propio lenguaje para realizar consultas SQL sobre un archivo de Excel.
  • Crear aplicaciones que puedan cambiar entre más de una base de datos, por ejemplo, Oracle y MySQL según las necesidades del usuario.
  • Administrar la configuración global de tu aplicación.
  • Crear un Pool de ejecuciones para controlar el número de hilos ejecutándose simultáneamente, protegiendo nuestra aplicación para no agotar los recursos.
  • Utilizar proxis para controlar la seguridad de tu aplicación.
  • Utilizar estrategias para cambiar la forma en que los usuarios son autenticados en la aplicación; como podría ser por Base de datos, Webservice, etcétera.
  • Crear tu propia máquina de estados para administrar el ciclo de vida de tu servidor.

Éstos son sólo algunos de los 25 ejemplos que abordaremos en este libro, los cuales están acompañados, en su totalidad, con el código fuente para que seas capaz de descargarlos, ejecutarlos y analizarlos desde tu propia computadora.
Finalmente, abordaremos los ejemplos con UML y conceptos fundamento de la programación orientada a objetos como lo son la Herencia, Polimorfismo, Encapsulamiento, Abstracción, Cohesión y Acoplamiento; de los cuales hablaremos en las secciones A y B de este mismo libro.

El libro está dividido en 3 capítulos principales en los cuales abordamos los patrones de diseño según su clasificación, los patrones que estudiamos son:

Patrones de diseño:

Patrones Creacionales:

  • Factory Method
  • Abstract Factory
  • Singleton
  • Builder
  • Prototype
  • Object Pool

Patrones Estructurales:

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

Patrones de Comportamiento:

  • Iterator
  • Command
  • Observer
  • Templete Method
  • Strategy
  • Chain of Responsability
  • Interpreter
  • Mediator
  • Memento
  • Null Object
  • State
  • Visitor

Además, abordamos brevemente los conceptos básicos de la programación orientada a objetos (POO) para todos aquellos lectores que están empezando a programar. También abordamos brevemente UML para comprender los diagramas que expondremos a lo largo de este libro.

Este es sin duda unos de los libros más completos que se puede conseguir acerca de los patrones de diseño, abordamos 25 patrones de diseño, exponemos 25 escenarios del mundo real que son solucionados utilizando patrones de diseño y se explica con código completo.

Edición Digital (PDF)

Cómpralo en formato PDF para visualizarlo en cualquier dispositivo con lector de PDF

Resultado de imagen para buy paypal

17 thoughts to “Introducción a los patrones de diseño”

  1. Hola, he estado leyendo algunos patrones de diseño del libro, me parecen muy bien explicados.

    Encontré el siguiente error en el libro: en la explicación del patron de diseño proxy dice dos veces “Class ProcessExecutorProxy” siendo que en una corresponde que diga “Class ServiceFactory”

    Eso 🙂 saludos.

    1. Hola Fernando, me da mucho gusto que el libro sea de tu interés. Con respecto al error que comentas, lo acabo de corregir , sin embargo, puede que tardes en verlo reflejado, pues necesito tener algún cambio importante en el libro para cargar una nueva versión. Te agradezco mucho la observación.

    1. Hola Felipe, Los proyectos están desarrollados originalmente en Netbeans (https://netbeans.org/) pero podrían ser importados en Eclipse. Ahora bien, si eres principiante en Java te recomiendo usar NetBeans, pues solo tendrás que darle abrir proyecto y listo.
      Si quieres continuar con Eclipse, tendrás que importar el proyecto como proyecto con código fuente existente.
      La verdad te recomiendo utilizar NetBeans, para que te ahorres toda la configuración, pero la decisión es tuya.

  2. Hola, hace 1 hora compré el libro en PDF y no logro recibir ningún correo diciendo cómo me encuentro con mi ejemplar. Tampoco está el correo en la carpeta de No deseado. ¿Tienen algún problema?

    Saludos

  3. Hola Oscar,

    Un saludo antes de nada por tu libro (está genial). Solo quería consultarte acerca del código de la página 92-93 (patrón builder): en el constructor …

    public Contact(String name, Phone phone, Address address) {
    this.name = name;
    this.phone = phone;
    }

    Entiendo que también faltaría this.address = address;

    ¿Es correcto? Muchas gracias y de nuevo felicidades por el libro.

  4. Hola Oscar, primero me gustaría saludarte y agradecer tu trabajo para crear este libro.
    Me gustaría que me confirmaras algo sobre la ilustración 17, para asegurarme de que ententí el ejemplo. ¿El recuadro en la parte superior derecha representa a la clase ServiceStackAbstractFactory en lugar de la clase iServiceStackAbstractFactory? ¿Las clases EmployeeServiceRestImpl y EmployeeServiceWSImpl implementan el método getEmployee() en lugar de getProducts()?
    Gracias de antemano, un saludo.

  5. buena noche soy principiante y tengo un error al ejecutar.
    (java.sql, SQLExeption:ORA-01017) nombre de usuario o contraseña no valido.
    agradezco me pueda ayudar
    gracias

  6. Hola Oscar,
    Un saludo he comprado hace poco tu libro lo estoy leyendo y está genial. Solo quería consultarte como puedo abrir, compilar y reproducir el proyecto de C# .
    Nota: Si realizas un breve tutorial de como compilar el proyecto sería de gran ayuda.

    Gracias.

  7. Oscar cordial saludo

    Adquirí tus tres libros, actualmente estoy estudiando INTRODUCCIÓN A LOS PATRONES DE DISEÑO

    Al descargar el código java de uno de los patrones, específicamente Factory Method, lo cargué en NetBeans pero a la hora compilar sale varios errores, creo que es ocasionado por ‘versionamiento’.

    Por favor, me puedes decir ¿con qué versión de:

    NetBeans IDE
    Java Development Kit (JDK)
    Motores Oracle, MySQL
    Oracle y MySQL JDBC drivers

    Fueron creados los proyectos?

    Muchas gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *