Patrones de Diseño en Java - Introducción

¡Hola! ¿Cómo están?. Gracias por volver a este su blog de código, esta vez les presento el comienzo de una serie de posts acerca de Patrones de Diseño. En este primer post definiremos que es un Patrón de Diseño y cuáles son las herramientas y conocimientos básicos para su construcción. Esta serie de posts está basada en el Libro Head First Design Patterns, Primera Edición - ISBN: 978-0-596-00712-6

Considero que es un muy buen libro de referencia, fácil de leer y de entender. Me considero una persona muy visual, tiendo a recordar más las cosas que veo que las que escucho o siento y este libro me ha dado una gran ayuda para visualizar mejor lo que entiendo. Este libro me lo recomendó el Ing. Juan Antonio alias @juanitodread, a quien considero un Software Developer muy bueno, bastante completo y apasionado por esto del software, a quien le he aprendido mucho. Les hago mención de esta persona y se los presento formalmente como colaborador de este blog y de esta serie de posts.
¡Vámos a Comenzar!


El código elaborado para esta serie de posts se encontrará en: Repositorio GitHub - Design Patterns


Patrón de Diseño

Un patrón de diseño es una técnica que ha sido elaborada, probada y validada para resolver un problema en específico, no es código, sino la solución para resolver el problema. La solución al problema se da en base a un comportamiento que es repetitivo (por lo general de cambio) lo cuál genera un patrón en la forma de solucionar el problema, lo que deduce que los patrones no fueron inventados, sino descubiertos. Se conoce como patrón de diseño porque la problemática se presenta (y debe ser atendida) en el momento en que estamos diseñando nuestro software. En esta etapa del desarrollo de software es donde surge la problemática de Cómo solucionarlo y Con qué y es donde se puede aplicar un patrón que enseñe como construir sistemas con las mejores cualidades del Diseño OO.
Como dijimos antes, los patrones son técnicas probadas y validadas que se obtuvieron a través de observar un mismo comportamiento en problemas de diseño de software y que se solucionaron dando nacimiento a un patrón que resolvió esos problemas y los cuales podemos aplicar a nuestro software. Ya existe alguien que resolvió nuestros problemas de diseño de software, ¡HURRA!.

Motivación


Así es como tu cerebro quedará con el conocimiento de patrones de diseño.

Conceptos Básicos de POO

Los conceptos básicos de POO que se utilizan para la creación de Patrones de Diseño son: Abstracción, Encampsulamiento, Herencia y Polimorfismo. Estos conceptos los puede ver en POO en Java (Conceptos).

Principios de Diseño

Veamos los principios de diseño como consejos a seguir en la elaboración de un Patrón de Diseño. Los principios de diseño son como una guía que si la seguimos no solo lograremos resolver nuestro problema con un Patrón, sino que mejoraremos nuestra forma de programar orientado a objetos, recuerde que los patrones de diseño no fueron creados, sino descubiertos y no nos proporcionan código sólo soluciones generales para resolver problemas. A lo largo de la serie de Posts iremos presentando nuevos principios de diseño, por lo pronto los siguientes son los básicos para lo que sigue.
  • Identifica los aspectos en nuestra aplicación que varían y separarlos de los que se mantienen igual. Esto es, tomar las partes que varían y encapsularlas, entonces después podemos alterar o extender las partes que varían sin afectar las que no lo hacen.
  • Programa una interfaz, no una implementación. Se refiere a programar un medio   que permita la conexión con otras clases sin tener que implementarlo.
  • Favorece la composición sobre la herencia. 

En el siguiente post veremos como aplicar los conceptos básicos de POO y los principios de diseño que hemos visto en un patrón de diseño.

Aquí la lista de los patrones de diseño que se han incluido en este blog:

2 comentarios

  1. Hola Marce, gracias por compartirnos tus conocimientos de patrones, me han servido bastante, pero quisiera saber si es posible que nos compartieras algo sobre patrones de comportamiento como: memento, observer, mediator y visitor, te agradecería muchísimo si nos permitieras tal información. Gracias

    ResponderEliminar
  2. Hola Osiris, gracias por comentar :)
    Me complacerá bastante proporcionarte la información, actualmente por cuestiones de trabajo no he continuado la publicación del resto de patrones que tengo, pero si quiero continuarlos y ya que los has pedido, me daré a la tarea de continuarlos en las próximas semanas.
    Por lo pronto ya hay algo del patrón observer http://marcestarlet-code.blogspot.mx/2013/04/patrones-de-diseno-en-java-patron.html

    ResponderEliminar

Seguidores

Google+ Followers

MarceStarlet. Con la tecnología de Blogger.