Red de conocimiento del abogados - Preguntas y respuestas jurídicas - ¿Cuáles son los patrones de diseño?

¿Cuáles son los patrones de diseño?

En general, los patrones de diseño se dividen en tres categorías:

1. Patrones de creación, los últimos cinco tipos: patrón de método de fábrica, patrón de fábrica abstracto, patrón singleton, modo de autor de construcción y modo prototipo.

2. Modos estructurales, siete tipos: modo adaptador, modo decorador, modo proxy, modo apariencia, modo puente, modo combinación y modo peso mosca.

3. Patrones de comportamiento, once tipos: patrón de estrategia, patrón de método de plantilla, patrón de observador, subpatrón iterativo, patrón de cadena de responsabilidad, patrón de comando, patrón de memorando, patrón de estado, patrón de visitante, patrón de mediador, Patrón de intérprete.

1. Patrón de método de fábrica:

Defina una interfaz para crear objetos y deje que las subclases decidan qué clase crear una instancia. El método Factory hace que la creación de instancias de una clase se difiera a sus subclases.

Un problema con el patrón de fábrica es que la creación de clases depende de la clase de fábrica, es decir, si desea expandir el programa, debe modificar la clase de fábrica, lo que viola el principio de cierre. Por lo tanto, desde una perspectiva de diseño, considerando que existen ciertos problemas, se utiliza el patrón del método de fábrica.

Cree una interfaz de fábrica y cree múltiples clases de implementación de fábrica, de modo que si necesita agregar nuevas funciones, pueda agregar directamente nuevas clases de fábrica sin modificar el código anterior.

2. Patrón Abstract Factory:

Proporciona una interfaz para crear una serie de objetos relacionados o interdependientes sin especificar sus clases específicas. La fábrica abstracta necesita crear una serie de productos, enfocándose en "qué" productos crear, es decir, si desarrolla, su tarea principal es dividir diferentes líneas de productos y tratar de mantener la interfaz de cada línea de productos consistente. para que puedas heredar de la misma fábrica abstracta.

3. Patrón Singleton:

El objeto Singleton es un patrón de diseño de uso común. En las aplicaciones Java, un objeto singleton puede garantizar que solo exista una instancia del objeto en una JVM. Este modelo tiene varias ventajas:

(1) Ciertas clases se crean con más frecuencia para algunos objetos grandes, esto supone una gran sobrecarga del sistema.

(2) Se omite el nuevo operador, lo que reduce la frecuencia de uso de la memoria del sistema y reduce la presión del GC.

(3) Algunas clases, como el motor comercial central de un intercambio, controlan el proceso de transacción. Si se pueden crear varias clases, el sistema quedará completamente arruinado. (Por ejemplo, si varios comandantes comandan un ejército al mismo tiempo, definitivamente se convertirá en un desastre). Por lo tanto, solo mediante el uso del modo singleton el servidor de transacciones central puede controlar de forma independiente todo el proceso.

4. Patrón constructor:

Separar la construcción de un objeto complejo de su representación, de modo que un mismo proceso de construcción pueda crear diferentes representaciones.

5. Modo prototipo:

Aunque el modo prototipo es un modo de creación, no tiene nada que ver con el modo de ingeniería. Como puede verse por el nombre, la idea de. Este modo consiste en convertir un objeto en Como prototipo, copiarlo o clonarlo para producir un nuevo objeto similar al objeto original. Este resumen lo explicará a través de la copia de objetos. En Java, la copia de objetos se implementa mediante clone(), creando primero una clase prototipo.

6. Modo adaptador:

El modo adaptador convierte la interfaz de una determinada clase en otra representación de interfaz esperada por el cliente. El propósito es eliminar la inconsistencia de la clase causada por. No coinciden las interfaces. Problemas de compatibilidad. Se divide principalmente en tres categorías: modo adaptador de clase, modo adaptador de objetos y modo adaptador de interfaz.

7. Modo decorador:

Como sugiere el nombre, el modo decoración consiste en agregar algunas funciones nuevas a un objeto y es dinámico. Requiere el objeto decorado y lo decorado. objeto para implementar la misma interfaz, el objeto de decoración contiene una instancia del objeto decorado.

8. Modo de agencia:

El modo de agencia consiste en crear una clase de agente adicional para realizar algunas operaciones en el objeto original. Por ejemplo, cuando alquilamos una casa, volvemos. para encontrar un intermediario. Debido a que no tiene información completa sobre las casas en el área, espera encontrar a alguien más familiarizado con ella para ayudarlo. Esto es lo que quiere decir el agente aquí.

9. Modo de apariencia:

El modo de apariencia es para resolver la relación de dependencia entre clases y hogares de clases, como Spring, la relación entre clases se puede configurar en un archivo de configuración y la apariencia. El patrón coloca su relación en una clase Facade, lo que reduce el acoplamiento entre clases. No hay ninguna interfaz involucrada en este patrón.

10. Modo puente:

El modo puente consiste en separar las cosas de su implementación específica para que puedan cambiar de forma independiente. El propósito del puente es desacoplar la abstracción y la implementación para que las dos puedan cambiar de forma independiente, como nuestro DriverManager de puente JDBC de uso común.

Cuando JDBC se conecta a una base de datos, básicamente no requiere mucho código para cambiar entre bases de datos, o incluso ningún código. La razón es que JDBC proporciona una interfaz unificada y cada base de datos proporciona su propia implementación. , simplemente use un programa llamado controlador de base de datos para realizar el puente.

11. Modo de combinación:

El modo de combinación a veces se denomina modo parte-todo, que es más conveniente cuando se trata de problemas similares a las estructuras de árbol. Escenario de uso: combine varios objetos para su operación, que a menudo se usa para representar estructuras de árbol, como árboles binarios, números, etc.

12. Modo Flyweight:

El objetivo principal del modo Flyweight es lograr el máximo intercambio de objetos, es decir, el grupo de intercambio máximo cuando hay muchos objetos. sistema, puede reducir la sobrecarga de memoria, que a menudo se usa con el modo de fábrica.

13. Modo de estrategia:

El modo de estrategia define una serie de algoritmos y encapsula cada algoritmo para que puedan reemplazarse entre sí, y los cambios en el algoritmo no afectarán el Utilice clientes algorítmicos. Es necesario diseñar una interfaz para proporcionar un método unificado para una serie de clases de implementación, múltiples clases de implementación para implementar la interfaz, diseñar una clase abstracta (opcional, una clase auxiliar) y proporcionar funciones auxiliares.

14. Patrón de método de plantilla:

En una clase abstracta, hay un método principal, y luego se definen 1...n métodos, que pueden ser métodos abstractos o reales. , Defina una clase, herede la clase abstracta, anule el método abstracto y llame a la subclase llamando a la clase abstracta.

15. Modo observador:

El modo observador es fácil de entender, similar a la suscripción por correo electrónico y la suscripción RSS. Cuando navegamos por algunos blogs o wikis, a menudo vemos el ícono RSS. Lo que esto significa es que cuando se suscriba al artículo, si hay actualizaciones posteriores, se le notificará a tiempo.

De hecho, en pocas palabras, es solo una oración: cuando un objeto cambia, otros objetos que dependen de él serán notificados y cambiarán en consecuencia. Existe una relación de uno a muchos entre objetos.

16. Subpatrón de iterador:

Como sugiere el nombre, el patrón de iterador es acceder secuencialmente a los objetos de la colección. En términos generales, es muy común en las colecciones. Está familiarizado con las clases de colección. Comprender este patrón será muy fácil. Esta oración contiene dos significados: uno es el objeto que debe atravesarse, es decir, el objeto de agregación, y el otro es el objeto iterador, que se utiliza para atravesar y acceder al objeto de agregación.

17. Modelo de cadena de responsabilidad:

En el modelo de cadena de responsabilidad, hay múltiples objetos y cada objeto tiene una referencia al siguiente objeto, formando así una cadena. se pasa por la cadena hasta que algún objeto decide manejar la solicitud. Sin embargo, el remitente no sabe qué objeto manejará finalmente la solicitud. Por lo tanto, se puede implementar el modelo de cadena de responsabilidad para ajustar dinámicamente el sistema sin ocultar al cliente.

18. Modo de comando:

El propósito del modo de comando es desacoplar al emisor y al ejecutor del comando y separar la solicitud y la ejecución.

19. Modo Memo:

El objetivo principal es guardar un determinado estado de un objeto para que pueda restaurarse en el momento adecuado. Personalmente, creo que es más. Vivid lo llama modo de copia de seguridad. En términos sencillos, se llama modo de copia de seguridad. A continuación: supongamos que hay una clase A original. Hay varios atributos en A. A puede decidir qué atributos deben respaldarse. para almacenar algunos estados internos de A. La clase C se utiliza para almacenar notas y solo se puede almacenar pero no se puede modificar.

20. Modo de estado:

El modo de estado se usa mucho en el desarrollo diario, especialmente cuando se crean sitios web. A veces queremos distinguir entre objetos en función de un determinado atributo del objeto. Algunas de sus funciones, como control de permisos sencillo, etc.

21. Patrón de visitante:

El patrón de visitante desacopla la estructura de datos y las operaciones que actúan sobre la estructura, permitiendo que el conjunto de operaciones evolucione con relativa libertad. El patrón de visitante es adecuado para sistemas donde la estructura de datos es relativamente estable y el algoritmo es fácil de cambiar. Porque el patrón de visitante facilita la adición de operaciones algorítmicas.

Si los objetos de la estructura de datos del sistema son fáciles de cambiar y con frecuencia se agregan nuevos objetos de datos, no es adecuado utilizar el patrón de visitante. La ventaja del patrón de visitantes es que es fácil agregar operaciones, porque agregar operaciones significa agregar nuevos visitantes. El patrón de visitante concentra comportamientos relacionados en un objeto de visitante y sus cambios no afectan la estructura de datos del sistema. La desventaja es que es difícil agregar nuevas estructuras de datos.

22. Patrón mediador:

El patrón mediador también se utiliza para reducir el acoplamiento entre clases, porque si hay dependencias entre clases, no favorece la expansión y el mantenimiento. , porque mientras se modifica un objeto, se deben modificar otros objetos relacionados.

Si usa el modo mediador, solo debe preocuparse por la relación con la clase Mediador. La relación y la programación entre clases específicas se dejan en manos del Mediador. Esto es un poco como el papel del resorte. recipiente.

23. Modo de intérprete:

El modo de intérprete generalmente se utiliza principalmente en el desarrollo de compiladores en el desarrollo de programación orientada a objetos, por lo que su ámbito de aplicación es relativamente limitado.

Información ampliada:

Presentación de tres libros sobre patrones de diseño:

1 "Patrones de diseño: la base del software orientado a objetos reutilizable"

p>

Autor: [EE. UU.] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Editor: Machinery Industry Press

2 "Secretos del software: diseño Patrones" Esa cosa"

Autor: Zheng Aqi

Editor: Electronic Industry Press

3 "Patrón de diseño: implementación y extensión de ingeniería basada en C#" <. /p>

Autor: Wang Xiang

Editor: Electronic Industry Press

Enciclopedia Baidu-Patrón de diseño