Patrones de diseño comunes en el diseño de software.

Los siguientes son patrones de diseño y escenarios de aplicación comunes:

  1. Patrón de fábrica: se utiliza para crear objetos, ocultando los detalles de creación de objetos específicos, el cliente solo necesita obtener el objeto a través de la interfaz de fábrica. Los escenarios de aplicación incluyen: cuando necesita generar diferentes tipos de objetos en función de diferentes parámetros; cuando necesita seguir el "principio de apertura y cierre", es decir, cuando agrega nuevos tipos, solo necesita agregar una nueva clase de fábrica.

  2. Patrón Singleton: se utiliza para garantizar que una clase solo pueda tener una instancia y proporcionar un punto de acceso global. Normalmente se utiliza cuando necesita compartir recursos, controlar el acceso a los recursos o solo necesita una única instancia.

  3. Patrón de observador: define una relación de dependencia de uno a muchos. Cuando el estado de un objeto cambia, todas sus dependencias serán notificadas y actualizadas automáticamente. Los escenarios de aplicación incluyen: cuando es necesario lograr un acoplamiento flexible entre objetos pero no se desea utilizar la herencia orientada a objetos; cuando es necesario implementar un mecanismo de manejo de eventos.

  4. Patrón de adaptador: convierte la interfaz de una clase en otra interfaz esperada por el cliente, de modo que las clases que originalmente no pueden funcionar debido a interfaces incompatibles puedan trabajar juntas. Los escenarios de aplicación incluyen: cuando necesita reutilizar algunas clases, pero las interfaces de estas clases son incompatibles con su código; cuando necesita crear una clase reutilizable que pueda funcionar con clases no relacionadas o imprevistas.

  5. Patrón de estrategia: define una familia de algoritmos y los hace intercambiables entre sí. Separa el uso y la implementación de algoritmos, y los clientes pueden elegir de manera flexible diferentes estrategias para realizar la misma tarea. Los escenarios de aplicación incluyen: cuando necesita definir algunos algoritmos y desea seleccionar dinámicamente uno de los algoritmos en tiempo de ejecución; cuando un objeto tiene múltiples comportamientos y puede usar diferentes comportamientos en diferentes escenarios.

  6. Patrón decorador: Asigne dinámicamente responsabilidades a los objetos y amplíe la funcionalidad del objeto. Para ello, crea objetos contenedores que mantienen la coherencia de la interfaz. Los escenarios de aplicación incluyen: cuando necesita mejorar la funcionalidad de un objeto y no desea cambiar la estructura de clases original; cuando necesita agregar múltiples funciones opcionales a un objeto, elija diferentes combinaciones de funciones en diferentes situaciones.

  7. Patrón iterador: proporciona una manera de acceder secuencialmente a elementos individuales en un objeto agregado sin exponer su implementación interna. Separa el algoritmo transversal de la estructura de datos, lo que permite cambiar el método transversal de forma independiente. Los escenarios de aplicación incluyen: cuando se requiere un recorrido complejo de objetos agregados; cuando es necesario proporcionar un método de recorrido general sin exponer la representación interna de los objetos agregados.

  8. Patrón de estado: permite que un objeto cambie su comportamiento cuando cambia su estado interno, haciendo que el objeto parezca como si hubiera modificado su clase. Encapsula diferentes estados en clases independientes, lo que hace que el comportamiento del objeto sea más fácil de administrar, expandir y mantener cuando cambia el estado. Los escenarios de aplicación incluyen: cuando el comportamiento de un objeto depende de su estado y el estado puede cambiar; cuando es necesario realizar diferentes respuestas en función de diferentes estados.

Reponer

El patrón de intérprete es un patrón de diseño de comportamiento que define una representación gramatical de un idioma y un intérprete para interpretar expresiones en el idioma. Este modo se utiliza principalmente para resolver ciertos tipos de problemas, como compiladores, analizadores, etc.

En la modalidad de intérprete, suele incluir los siguientes roles:

  1. AbstractExpression: define una interfaz abstracta para interpretar expresiones en contexto.

  2. Expresión terminal: implementa la interfaz de expresión abstracta, representa los símbolos terminales en la gramática y realiza operaciones de interpretación específicas.

  3. Expresión no terminal (Expresión no terminal): implementa la interfaz de expresión abstracta, representa los símbolos no terminales en la gramática e implementa la operación de interpretación de múltiples símbolos terminales mediante llamadas recursivas.

  4. Contexto: contiene información global que necesita el intérprete para las operaciones de interpretación.

Utilice el patrón Interpreter para crear un intérprete de lenguaje simple que convierta reglas gramaticales complejas en objetos que sean fáciles de entender y manipular. Las reglas gramaticales del idioma se pueden cambiar y ampliar de manera flexible agregando nuevos intérpretes o modificando los existentes.

En resumen, el patrón de intérprete implementa la función de interpretar y ejecutar un lenguaje específico definiendo reglas gramaticales y los intérpretes correspondientes. Se puede utilizar para abordar problemas de análisis y ejecución del lenguaje en algunos campos específicos, haciendo que el cambio y la expansión de las reglas gramaticales sean más simples y flexibles.

Supongo que te gusta

Origin blog.csdn.net/weixin_42797483/article/details/133081394
Recomendado
Clasificación