¿Cuál es la diferencia entre los patrones y principios de diseño orientado a objetos? ¿Son cosas diferentes? Hasta donde yo entiendo, ambos intentan alcanzar un objetivo común (por ejemplo, flexibilidad). Entonces, ¿puedo decir que un patrón es un principio y viceversa?
Principio de diseño = SÓLIDO (es decir, Principio de inversión de dependencia)
Patrón de diseño = Gof (es decir, patrón de fábrica abstracto)
fuente
Estos conceptos no son iguales:
* Principio de diseño: * Los principios de diseño de software representan un conjunto de pautas que nos ayudan a evitar tener un mal diseño. como: Abrir Cerrar Principio
* Patrón de diseño: * un Patrón de diseño es una solución reutilizable general a un problema común dentro de un contexto dado en el diseño de software. Me gusta: Singleton
fuente
Los patrones son para principios, lo que las implementaciones son para patrones.
Un principio sería la "indirección", que podría lograrse mediante un patrón de "fábrica", que al final se implementa como una clase con métodos de fábrica.
fuente
Bueno, los Principios son reglas, mientras que los patrones son sus ejemplos concretos.
fuente
Los patrones son más cosas de alto nivel que principios. Los patrones resuelven problemas específicos. Los principios podrían aplicarse en cualquier lugar, independientemente del contexto. Realmente patrones basados en principios (SRP, DRY, etc.)
Por ejemplo, veamos el patrón de estrategia. Define una familia de algoritmos, encapsula cada uno y los hace intercambiables. Entonces, tienes aquí un concepto de algoritmo de alto nivel. Con el patrón de estado tienes un concepto de estado de alto nivel. Con los principios no tienes conceptos de alto nivel. Los principios son bloques de construcción, que utilizan los patrones para lograr el objetivo. Cuando implementa el patrón de estrategia, usa SOLID:
fuente
Patrones donde originalmente se documentaron para Arquitectura. En arquitectura, aplique a cosas que van desde la colocación de la puerta en una habitación hasta el diseño de un pueblo.
The Gang of Four aplicó la idea a la programación orientada a objetos. Puede haber más de un patrón que puede usarse para resolver un problema, pero cada patrón tendrá una implementación específica. Existen patrones en otros enfoques de programación, pero no conozco ningún libro aplicable. Como otros han mencionado, los patrones cubren implementaciones específicas. Usar un patrón cuando no se aplica a menudo se considera un antipatrón.
Los principios no cubren la implementación, aunque puede haber enfoques de implementación estándar. Los principios tratan más sobre temas generales que sobre problemas específicos. Para la Inversión de control, conozco al menos tres enfoques de implementación. Para DRY (No se repita) No conozco un enfoque de implementación específico, aunque uso varios.
Considerar
fuente
Principio de diseño de OO:
El principio OO es un conjunto de pautas que garantiza el concepto OOP. Basado en el concepto OOP, esto define formas de diseñar una mejor manera, un mejor diseño. El principio de diseño básico de OO es SÓLIDO.
Un patrón de diseño proporciona una solución general a un problema de diseño. Tenga en cuenta que el "patrón de diseño" también se puede aplicar a las palabras orientadas a objetos del mediodía. Entonces, los patrones de diseño A OO (OODP) son aquellos que proporcionan una solución general al principio OO basado en el diseño orientado a objetos. Los patrones de diseño se descubren, no se inventan. Hay varias formas de definir OODP y la más famosa es BSC [Behavioral Structural Creational].
El siguiente es el enlace para una explicación detallada. http://techythought.wordpress.com/2013/01/21/design-principle-vs-ds-design-pattern-describing-oop-elements/
fuente