En el desarrollo de sistemas, la mayoría de los programadores hoy en día, utilizan como metodología, la Programación Orientada a Objetos, de aquí en adelante, lo abreviaremos con sus siglas POO. Sabemos que programar en POO, no es muy sencillo, cuando los desarrollos tienden a complejizarse, el programador no experimentado no es capaz de determinar que clases elaborar. Los conceptos de la POO, no adquieren mayores dificultades a la hora de estudiarlos, el problema radica en como aplicar eficientemente estos conceptos en el desarrollo de aplicaciones medianamente complejas. Para facilitar el desarrollo, existen una serie de patrones, utilizados por una gran mayoría de desarrolladores experimentados, con el propósito de diseñar la arquitectura de sus proyectos.
Esta guía, le llevará al lector, un camino introductorio a los diferentes patrones de diseño que podemos encontrar. Usted, como programador, puede implementar estos patrones, en sus proyectos a medida que su aplicación lo requiera. Debemos tener en cuenta, que cada aplicación es diferente, por lo tanto, su comportamiento y su jerarquía de clases será diferente, por eso debemos escoger el patrón de diseño que mejor se adapte a nuestro objetivo.