un patrón de diseño proporciona una solución general reutilizable para los problemas comunes que ocurren en el diseño de software. El patrón típicamente muestra relaciones e interacciones entre clases u objetos. La idea es acelerar el proceso de desarrollo proporcionando un paradigma de desarrollo/diseño bien probado y comprobado. Los patrones de diseño son estrategias independientes del lenguaje de programación para resolver un problema común. Eso significa que un patrón de diseño representa una idea, no una implementación en particular., Al usar los patrones de diseño, puede hacer que su código sea más flexible, reutilizable y mantenible.
no es obligatorio implementar siempre patrones de diseño en tu proyecto. Los patrones de diseño no están diseñados para el desarrollo de proyectos. Los patrones de diseño están diseñados para resolver problemas comunes. Siempre que sea necesario, debe implementar un patrón adecuado para evitar este tipo de problemas en el futuro. Para averiguar qué patrón usar. Solo tienes que tratar de entender los patrones de diseño y sus propósitos. Solo para entonces, usted será capaz de elegir el correcto.,
objetivo: comprender el propósito y el uso de cada patrón de diseño. Por lo tanto, usted será capaz de elegir e implementar el patrón correcto según sea necesario.
Ejemplo:
por ejemplo, en muchas situaciones del mundo real, queremos crear solo una instancia de una clase. Por ejemplo, solo puede haber un presidente activo del país a la vez, independientemente de su identidad personal. Este patrón se llama patrón Singleton. Otros ejemplos de software podrían ser una sola conexión de base de datos compartida por varios objetos, ya que crear una conexión de base de datos separada para cada objeto será costoso., Del mismo modo, puede haber un solo administrador de configuración o administrador de errores en una aplicación que maneja todos los problemas en lugar de crear varios administradores.
Tipos de patrones de diseño
Hay principalmente tres tipos de patrones de diseño:
- Creational
Estos patrones de diseño tienen que ver con la instanciación de clases o la creación de objetos. Estos patrones pueden ser categorizados en patrones de creación de clases y patrones de creación de objetos., Mientras que los patrones de creación de clases usan la herencia de manera efectiva en el proceso de instanciación, los patrones de creación de objetos usan la delegación de manera efectiva para hacer el trabajo.Los patrones de diseño creacional son el método Factory, Abstract Factory, Builder, Singleton, Object Pool y Prototype.,
caso de uso de creational design pattern –
1) Supongamos que un desarrollador desea crear una clase DBConnection simple para conectarse a una base de datos y desea acceder a la base de datos en múltiples ubicaciones desde el código, generalmente lo que el desarrollador hará es crear una instancia de clase DBConnection y usarla para realizar operaciones de base de datos donde sea necesario. Lo que resulta en la creación de múltiples conexiones desde la base de datos, ya que cada instancia de la clase DBConnection tendrá una conexión separada a la base de datos., Para lidiar con ello, creamos la clase DBConnection como una clase singleton, de modo que solo se crea una instancia de DBConnection y se establece una sola conexión. Porque podemos administrar la conexión de la base de datos a través de una instancia para que podamos controlar el equilibrio de carga, conexiones innecesarias, etc.2) Supongamos que desea crear varias instancias de tipo similar y desea lograr un acoplamiento suelto, entonces puede optar por el patrón de fábrica. Una clase que implementa un patrón de diseño de fábrica funciona como un puente entre varias clases. Considere un ejemplo de uso de múltiples servidores de bases de datos como SQL Server y Oracle., Si está desarrollando una aplicación utilizando la base de datos SQL Server como back-end, pero en el futuro necesita cambiar la base de datos a oracle, tendrá que modificar todo su código, para que los patrones de diseño de fábrica mantengan el acoplamiento suelto y la implementación fácil, debemos ir a la fábrica para lograr el acoplamiento suelto y la creación de un tipo similar de objeto.
- Structural
Estos patrones de diseño consisten en organizar diferentes clases y objetos para formar estructuras más grandes y proporcionar una nueva funcionalidad.,Los patrones de diseño estructural son adaptador, Puente, compuesto, decorador, fachada, peso mosca, datos de clase privada y Proxy.
caso de uso del patrón de diseño estructural –
1) Cuando 2 interfaces no son compatibles entre sí y desean establecer una relación entre ellas a través de un adaptador, se denomina patrón de diseño de adaptador. Adapter pattern convierte la interfaz de una clase en otra interfaz o clase que el cliente espera, es decir, el adaptador permite que las clases trabajen juntas que no podrían de otra manera debido a la incompatibilidad., así que en este tipo de escenarios incompatibles, podemos ir para el patrón de adaptador.
- Los patrones de comportamiento consisten en identificar patrones comunes de comunicación entre objetos y realizar estos patrones.,
Los patrones de comportamiento son Cadena de responsabilidad, comando, intérprete, iterador, mediador, momento, objeto nulo, Observador, estado, estrategia, método de plantilla, visitante
caso de uso del patrón de diseño de comportamiento-
1) El patrón de plantilla define el esqueleto de un algoritmo en una operación diferiendo algunos pasos a subclases, el método de plantilla permite que las subclases redefinan ciertos pasos de un algoritmo sin cambiar la estructura del algoritmo., Por ejemplo, en su proyecto desea que el comportamiento del módulo pueda extenderse, de modo que podamos hacer que el módulo se comporte de formas nuevas y diferentes a medida que cambien los requisitos de la aplicación, o para satisfacer las necesidades de nuevas aplicaciones. Sin embargo, a nadie se le permite hacer cambios en el código fuente, es decir, puede agregar pero no puede modificar la estructura en aquellos escenarios en los que un desarrollador puede acercarse al patrón de diseño de plantilla.