Análisis y diseño orientado a objetos.
Sumario
Patrones
Son unos principios que deberíamos tener como base antes de proponer una arquitectura de software para el desarrollo de nuestras aplicaciones.
Estos principios nos brindan formas de pasar del código estrechamente acoplado y pobremente encapsulado a los resultados deseados de las necesidades reales de una empresa y que puede ser escalable en un futuro
Este acrónimo tiene bastante relación con los patrones de diseño, en especial, con la alta cohesión y el bajo acoplamiento.
SOLID
SOLID es un acrónimo de:
- S: Single Responsibility Principle (SRP)
- O: Open/Closed Principle (OCP)
- L: Liskov substitution Principle (LSP)
- I: Interface Segregation Principle (ISP)
- D: Dependency Inversion Principle (DIP)
Patrones de diseño
Un patrón de diseño es una forma reutilizable de resolver un problema común.
El concepto de patrón de diseño lleva existiendo desde finales de los 70, pero su verdadera popularización surgió en los 90 con el lanzamiento del libro de Design Pattern de la Banda de los Cuatro (Gang of Four). En él explican 23 patrones de diseño
Los patrones de diseño son útiles porque suponen:
- Ahorro de tiempo
- Validez de tu código
- Uso de un lenguaje común
Los patrones de diseño nos ayudan a cumplir muchos de estos principios o reglas de diseño. Programación SOLID, control de cohesión y acoplamiento o reutilización de código son algunos de los beneficios que podemos conseguir al utilizar patrones.
Existen muchos patrones de diseño y siguen apareciendo nuevos. Detallaremos aquí los 23 patrones del libro Gang of Four clasificados en:
- Patrones Creacionales
- Patrones Estructurales
- Patrones de Comportamiento
Los patrones de diseño pretenden:
- Proporcionar catálogos de elementos reusables en el diseño de sistemas software.
- Evitar la reiteración en la búsqueda de soluciones a problemas ya conocidos y solucionados anteriormente.
- Formalizar un vocabulario común entre diseñadores.
- Estandarizar el modo en que se realiza el diseño.
- Facilitar el aprendizaje de las nuevas generaciones de diseñadores condensando conocimiento ya existente.
Asimismo, no pretenden:
- Imponer ciertas alternativas de diseño frente a otras.
- Eliminar la creatividad inherente al proceso de diseño.