Patrones de diseño OO Gang of Four (GoF)
Algunos principios KISS (Keep It Simple, Smart; Keep It Simple, Stupid!): La simplicidad debe ser uno de los objetivos claves de un diseño. Un código simple toma menos tiempo para programarse, tiene menos bugs y es más sencillo de modificar. DRY (Dont Repeat Yourself): No escribir código duplicado, en su lugar abstraer las cosas comunes en un solo lugar. SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion): - Single responsibility: una clase debería tener una sola responsabilidad. - Open-closed: clases y métodos deberían estar abiertos para su extensión (nuevas funcionalidades) pero cerrados para su modificación. - Liskov substitution: los objetos en un programa deberían ser reemplazables con instancias de sus subtipos sin alterar su correcto funcionamiento. - Interface segregation: varias interfaces para clientes específicos son mejores que una interfaz de de propósitos general. - Dependency inversion: se debería depender de abstracciones y no en concreciones.
Qué es un patrón Una solución común y probada a un problema recurrente. Anatomía: Nombre Problema/motivación Contexto, ejemplo del mundo real. Solución Diseño, estructura. Implementación. Consecuencias y compromisos (tradeoffs) Variaciones, usos conocidos
Más de los patrones Son una manera de reusar diseños. Independientes del lenguaje y de la implementación. Corresponden con una micro-arquitectura. Existen dos catálogos principales: GoF: Gang of Four(Gamma, Helm, Johnson, Vlissides, 1995) POSA: Pattern Oriented Software Architecture (Buschmann, et al.; Wiley, 1996)
Clasificación de los patrones de diseño