Los graduados de Tsinghua lo llevarán a pulir y dominar 23 patrones de diseño, con un total de 6.17G, y consolidarán su base de desarrollo.

Prefacio

El desarrollo de software se está volviendo cada vez más complejo, y los requisitos para el diseño de software son cada vez más altos, y la habilidad introductoria del diseño y la arquitectura de software es comprender y dominar profundamente los patrones de diseño. Por lo tanto, la importancia de los patrones de diseño es evidente.

Muchos amigos se han dado cuenta de la importancia de los patrones de diseño y leen muchos libros y materiales. Sin embargo, a menudo escuchan quejas como esta: "He leído muchos libros sobre patrones de diseño y creo que los entiendo todos, pero no sé cómo Cómo utilizar estos patrones de diseño en desarrollo ", para que el patrón de diseño" se vea muy bien ".

De hecho, este no es el caso. La razón de esta situación es que estos amigos no tienen una buena comprensión de los patrones de diseño y sienten que los entienden. De hecho, todavía están muy lejos y no tienen una comprensión "verdadera" y no dominan los patrones de diseño.

Este artículo está dirigido a esta situación, para que realmente pueda comprender y dominar los 23 patrones de diseño, y pueda usarlos de manera flexible, ¡espero que le guste! ! !

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Tabla de contenido

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

 

contenido principal

Capítulo 1 Conceptos básicos de los patrones de diseño ¿Qué es un patrón? Tomado literalmente, modelo significa el significado de modelo y plantilla: estilo significa camino y método. En conjunto, el llamado modelo es: una forma o método que se puede utilizar como modelo o plantilla. En pocas palabras, es una forma o método que se puede utilizar como modelo, similar al ejemplo familiar.

De acuerdo con el entendimiento anterior, el patrón de diseño se refiere a la plantilla de diseño, es decir, la forma o método de diseño.

Patrón de diseño: se refiere a una solución probada en el desarrollo de software para resolver problemas específicos recurrentes en un entorno específico.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 2 Fábrica simple, Fábrica simple no es un patrón de diseño estándar, pero es demasiado común, simple y mágico, por lo que debe dominarlo, solo como un ejercicio de calentamiento para aprender patrones de diseño. Para mantener la coherencia, tratamos de seguir los pasos de aprender otros modos de aprender.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 3 Modo de apariencia, el modo de apariencia tiene las siguientes ventajas.

  • Acoplamiento suelto: el modo de apariencia afloja la relación de acoplamiento entre el cliente y el subsistema, lo que hace que los módulos dentro del subsistema sean más fáciles de expandir y mantener.
  • Sencillo y fácil de usar : el modo de apariencia hace que el subsistema sea más fácil de usar. El cliente ya no necesita comprender la implementación interna del subsistema, ni necesita interactuar con los módulos dentro de muchos subsistemas. Solo necesita interactuar con la apariencia, que es equivalente a la apariencia. La clase proporciona un servicio integral para que los clientes externos utilicen el subsistema.
  • Divida mejor el nivel de acceso: al utilizar Facade de manera razonable, puede ayudarnos a dividir mejor el nivel de acceso. Algunos métodos son externos al sistema y algunos métodos se utilizan internamente. Las funciones que necesitan ser expuestas al exterior se concentran en la apariencia, por lo que es conveniente para el uso del cliente, y también esconde los detalles internos.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 4 Modo de adaptador (Adaptador), el modo de adaptador tiene las siguientes ventajas.

  • Mejor reutilización: si las funciones ya están ahí, pero las interfaces no son compatibles, estas funciones se pueden reutilizar mejor a través del modo adaptador.
  • Mejor escalabilidad: al implementar la función del adaptador, puede llamar a la función desarrollada por usted mismo, expandiendo así naturalmente la función del sistema.

 

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 5 Modo Singleton (Singleton)

1. La función del modo singleton

El modo singleton se utiliza para garantizar que solo se cree una instancia de esta clase durante el tiempo de ejecución. Además, el modo singleton también proporciona un punto de acceso único a nivel mundial a esta instancia de clase, que es el método getInstance. Independientemente de si se adopta el método de implementación perezoso o hambriento, este punto de acceso global es el mismo.

Con respecto al patrón singleton, no importa qué método de implementación se adopte, solo se preocupa por la creación de instancias de clase y no se preocupa por funciones comerciales específicas.

2. El alcance del patrón singleton

Es decir, ¿en qué ámbito es un singleton?

Observando la implementación anterior, podemos saber que el singleton actual implementado en Java está dentro del alcance de una máquina virtual. Debido a que la función de cargar una clase es una máquina virtual, una máquina virtual creará una instancia de la clase cuando cargue una clase singleton a través de su propio ClassLoader.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 6 Método de fábrica

Función del patrón del método de fábrica

La función principal del patrón del método de fábrica es permitir que la clase padre complete sus propias llamadas de función sin conocer la implementación específica: y la implementación específica se retrasa a la subclase.

De esta manera, al diseñar, no necesita pensar en la implementación específica. Si necesita un objeto, devuélvalo a través del método de fábrica y devuélvalo. Cuando use estos objetos para implementar funciones, seguirá operando a través de la interfaz, que es similar a IoC / DI. La idea de esto se introducirá en detalle más adelante.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 7 Modo de fábrica abstracta (Fábrica abstracta)

Función del patrón de fábrica abstracto

La función de la fábrica abstracta es crear una interfaz para una serie de objetos relacionados u objetos interdependientes. Cabe señalar que los métodos en esta interfaz no están apilados arbitrariamente, sino una serie de métodos relacionados o interdependientes. Por ejemplo, la CPU y la placa base en el ejemplo anterior están todas relacionadas con el ensamblaje de una computadora.

En cierto sentido, la fábrica abstracta es en realidad una serie de productos o un grupo de productos. La fábrica abstracta en el ejemplo anterior se puede considerar como un grupo de computadoras, y cada esquema de instalación diferente representa una serie de computadoras específica.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 8 Modo Constructor (Constructor)

La función principal del modo generador es construir productos complejos, y es un producto de construcción detallado y paso a paso, es decir, el modo generador se enfoca en resolver el problema de construir objetos complejos paso a paso. No es suficiente entender la función del modo generador.

Para decirlo sin rodeos, el enfoque del modo generador es separar el algoritmo de construcción de la implementación de construcción específica, de modo que el algoritmo de construcción se pueda reutilizar. La construcción específica se puede expandir y cambiar fácilmente, de modo que se pueda combinar de manera flexible para construir diferentes objetos de producto.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 9 Modo Prototipo (Prototipo)

La función del modo prototipo en realidad incluye dos aspectos:

  • Uno es crear nuevas instancias de objetos mediante la clonación;
  • La otra es copiar los valores de las propiedades de la instancia de prototipo para la nueva instancia de objeto clonada.

La función principal del modo prototipo es crear nuevas instancias de objetos mediante la clonación. En términos generales, los datos de la instancia recién creada son los mismos que los de la instancia prototipo. Sin embargo, la forma de implementar la clonación debe ser implementada por el propio programa, ya que el modelo prototipo no tiene requisitos uniformes ni algoritmos de implementación.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 10 Modo de mediador (Mediador)

La función del intermediario es muy sencilla, consiste en encapsular la interacción entre objetos. Si la operación de un objeto causará cambios en otros objetos relacionados, o una operación determinada necesita causar operaciones posteriores o conjuntas de otros objetos, y el objeto no quiere manejar estas relaciones por sí mismo, entonces puede encontrar un intermediario y poner todo Eche el problema, notifique al intermediario solo cuando sea necesario y deje que el intermediario se encargue del resto.

Por el contrario, cuando se manipulan otros objetos, pueden provocar cambios en este objeto, y esto también se puede hacer.

Al final, los objetos están completamente separados y nadie interactúa directamente con otros objetos. Entonces las relaciones mutuas se concentran todas en el objeto intermediario, y todos los objetos solo se comunican con el objeto intermediario, y no hay más entre ellos. contacto.

Encapsulando la interacción entre todos los objetos en el intermediario, de manera invisible también se puede obtener otra ventaja, es decir, la capacidad de controlar de forma centralizada la interacción de estos objetos, por lo que cuando hay cambios, es muy conveniente modificarlos.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 11 Modo Proxy (Proxy)

El modo proxy es crear un objeto proxy y usar el objeto proxy para representar el objeto real. Después de que el cliente obtiene el objeto proxy, no tiene ningún efecto en el cliente y se usa como si fuera un objeto real.

Cuando el cliente opera el objeto proxy, de hecho, la función eventualmente será completada por el objeto real, pero se opera a través del proxy, es decir, el cliente opera el proxy y el proxy opera el objeto real.

Es precisamente porque hay un objeto proxy intercalado entre el cliente y el objeto real que se está transfiriendo, lo que equivale a una transferencia. Entonces hay muchos trucos para jugar durante la transferencia. Por ejemplo, juzga los permisos. Si no tienes suficientes permisos, no Me han transferido a ti.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 12 Modo Observador (Observador)

Según la definición del modelo, existe una relación típica de uno a muchos entre el objetivo y el observador.

Sin embargo, cabe señalar que si hay un solo observador, también es posible. De esta manera, la relación uno a uno entre el objetivo y el observador se realiza de forma disfrazada. Esto también hace que el cambio de estado de un objeto afecte al otro en el proceso. Para un objeto, también puede considerar el uso del modo de observador.

De manera similar, un observador también puede observar varios objetivos. Si el método de actualización de notificación definido por el observador para varios objetivos es el método de actualización, esto causará problemas, porque necesita recibir notificaciones de varios objetivos, si es uno por uno. Es necesario distinguir un método de actualización dentro del método. Al final, de qué destino proviene la notificación de actualización y los diferentes destinos tienen diferentes operaciones de seguimiento.

En circunstancias normales, los observadores deben definir diferentes métodos de devolución de llamada para diferentes objetivos de observadores. Esta es la implementación más simple y no necesita distinguirse dentro del método de actualización.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 13 Modo de comando (comando)

1. La llave al modo comando

La clave del modo de comando es encapsular la solicitud en un objeto, que es un objeto de comando, y definir una interfaz unificada para realizar operaciones. Este objeto de comando se puede almacenar, reenviar, grabar, procesar, cancelar, etc. Este objeto está en curso.

2. Modo de montaje y llamada de mando

En el modo de comando, a menudo hay un ensamblador de comandos que lo usa para mantener la relación entre la implementación "virtual" del comando y la implementación real. Si es un comando superinteligente, es decir, el objeto de comando está completamente implementado por sí mismo y no necesita un receptor, eso es la degradación del modo de comando. No hay necesidad de receptor, y naturalmente no hay necesidad de ensamblador.

El usuario real debe especificar el contenido de la solicitud y luego enviar la solicitud para activarla. El usuario real activará el comando a través del Invoker.

En el proceso de desarrollo real, el cliente y el invocador pueden integrarse juntos. Cuando el cliente usa el modo de comando, el objeto de comando y el receptor se ensamblan primero. Una vez completado el ensamblaje, se puede invocar la solicitud de ejecución del comando.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 14 Modo iterador (terator)

La función del patrón de iterador es principalmente proporcionar acceso iterativo a objetos agregados. Los iteradores se centran en este "acceso" y amplían muchas funciones. Por ejemplo: atraviesa el objeto agregado de diferentes maneras, como hacia adelante, hacia atrás, etc.

■ Realice múltiples recorridos en la misma agregación al mismo tiempo.

■ Utilice diferentes estrategias de recorrido para atravesar la agregación, por ejemplo, si se requiere filtrado.

El significado de iteración polimórfica es proporcionar una interfaz iterativa unificada para diferentes estructuras de agregación, es decir, se puede acceder a diferentes estructuras de agregación a través de una interfaz de iteración, que se denomina iteración polimórfica. El ejemplo anterior ha logrado una iteración polimórfica. De hecho, la implementación del modo de iteración estándar básicamente admite la iteración polimórfica.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 15 Modo compuesto (compuesto)

El propósito del modo combinado es permitir que el cliente ya no distinga si la operación es un objeto combinado o un objeto hoja, sino que opere de manera unificada.

La clave para lograr este objetivo es diseñar una clase de componente abstracto para que pueda representar objetos compuestos y objetos hoja. De esta manera, el cliente no necesita distinguir entre objetos compuestos u objetos hoja, y solo necesita tratarlos a todos como objetos componentes para operaciones unificadas.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 16 Método de plantilla

La función del modo de método de plantilla es arreglar el esqueleto del algoritmo y hacer que el algoritmo específico sea escalable.

Esto es muy extenso en aplicaciones prácticas, especialmente al diseñar funciones a nivel de marco. El marco define los pasos del algoritmo y permite a los desarrolladores expandirse en los puntos apropiados para implementar algoritmos específicos. Por ejemplo, diseñe una función general de adición, eliminación, modificación y verificación en la implementación de DAO. Esto le dará un ejemplo más adelante.

El patrón del método de plantilla también proporciona un beneficio adicional, es decir, puede controlar la expansión de subclases. Debido a que los pasos del algoritmo se definen en la clase principal, el método implementado por la subclase solo se llama en ciertos puntos fijos, por lo que solo se permite extender la función en estos puntos. Estos métodos, que pueden ser reemplazados por subclases para extender la funcionalidad, generalmente se denominan métodos de "gancho" y se darán ejemplos más adelante.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 17 Modo de estrategia (estrategia)

La función del modo de estrategia es separar la implementación de algoritmos específicos del procesamiento comercial específico e implementarlos como clases de algoritmos separados, formando así una serie de algoritmos y permitiendo que estos algoritmos sean intercambiables.

El enfoque del modelo de estrategia no es cómo implementar algoritmos, sino cómo organizar y llamar a estos algoritmos, de modo que la estructura del programa sea más flexible, con mejor mantenibilidad y escalabilidad.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 18 Modo de estado (estado)

El llamado estado de un objeto generalmente se refiere al valor del atributo de la instancia del objeto: el comportamiento se refiere a la función del objeto y, para ser más específicos, la mayoría de los comportamientos pueden corresponder a métodos.

La función del modo de estado es separar el comportamiento del estado y llamar a diferentes funciones correspondientes a diferentes estados manteniendo los cambios de estado.

En otras palabras, el estado y el comportamiento están relacionados y su relación se puede describir como: el estado determina el comportamiento.

Dado que el estado cambia durante el tiempo de ejecución, el comportamiento también cambiará durante el tiempo de ejecución de acuerdo con el cambio de estado. Parece que el mismo objeto, en diferentes tiempos de ejecución, se comporta de manera diferente, al igual que la clase se modifica mismo.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 19 Modo Memento (Memento)

La función del modo memo, en primer lugar, es capturar el estado interno de un objeto sin destruir la encapsulación.

Hay dos puntos a los que se debe prestar atención aquí. Uno no es destruir el encapsulado, es decir, el objeto no puede exponer detalles que no debería exponer; el otro es capturar el estado interno del objeto, y generalmente es el estado interno del objeto en un momento determinado durante la operación.

¿Por qué capturar el estado interno de este objeto ?, ¿de qué sirve capturar este estado interno?

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 20 Peso mosca

El enfoque del diseño del modelo Flyweight es separar el cambio y el cambio. El estado de un objeto se divide en un estado interno y un estado externo, el estado interno es constante y el estado externo es variable. Luego, al compartir la parte que no cambia, se logra el objetivo de reducir el número de objetos y ahorrar memoria. Cuando el objeto de peso mosca lo necesita, puede pasar en estado externo al objeto compartido desde el exterior, y el objeto compartido usará su propio estado interno y estos estados externos al procesar funciones.

De hecho, separar el cambio de lo inmutable es una de las formas más básicas en el diseño de software, como reservar una interfaz. ¿Por qué necesita reservar una interfaz en este lugar? -Una razón común es que hay cambios aquí, que pueden necesitar ser expandidos en el futuro. Se trata de cambiar la implementación existente, por lo que la interfaz se reserva como "garantía de conectabilidad".

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 21 Modo de intérprete (Intérprete)

El modo de intérprete utiliza objetos de intérprete para representar y procesar las reglas gramaticales correspondientes. Generalmente, un intérprete procesa una regla gramatical. En teoría, siempre que el objeto intérprete pueda usarse para expresar expresiones gramaticales y pueda formar un árbol de sintaxis abstracto, puede procesarse usando el modo de intérprete.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 22 Modo de decoración (Decorador)

El modo de decoración puede agregar funciones dinámicamente a un objeto, que es agregar funciones a un objeto desde fuera del objeto, lo que equivale a cambiar la apariencia del objeto. Después de la decoración, desde la perspectiva del sistema de uso externo, ya no se usa el objeto original, sino el objeto que ha sido decorado por - series de decoradores.

De esta manera, la función de un objeto se puede cambiar de manera flexible. Mientras el decorador combinado dinámicamente cambie, la función del objeto final también cambiará.

Otro beneficio se obtiene disfrazado, es decir, la multiplexación de funciones de decorador, puedes agregar el mismo decorador a un objeto varias veces, o puedes usar el mismo decorador para decorar diferentes objetos.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 23 Cadena de responsabilidad (Cadena de responsabilidad)

El modelo de cadena de responsabilidad se utiliza principalmente para lidiar con la situación de que "el cliente envía una solicitud y varios objetos tienen la oportunidad de procesar esta solicitud, pero el cliente no sabe quién atenderá su solicitud". Es decir, el solicitante y el receptor deben estar desacoplados, de modo que el receptor pueda conmutarse y combinarse dinámicamente.

Si desea transformar el uso de la cadena de responsabilidad, puede dejar que la solicitud continúe pasando, y cada objeto de responsabilidad realiza cierto procesamiento funcional en esta solicitud, formando así una cadena funcional para procesar la solicitud.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 24 Modo puente (puente)

En el modo puente, el concepto de puente no se comprende bien. ¿Qué es un puente? ¿Por qué necesitamos un puente? ¿Cómo un puente? Cuando estos problemas se aclaren, básicamente entenderemos el significado de un puente.

Echemos un vistazo a lo que es un puente uno por uno El llamado puente, en términos simples, es construir un puente entre diferentes cosas para que puedan conectarse, comunicarse y usarse entre sí. Entonces, ¿qué es exactamente un puente en el modo de puente? Es unir la parte abstracta separada y la parte de realización, como el mensaje abstracto y el envío de mensajes concretos en el ejemplo anterior.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Capítulo 25 Modo visitante (visitante)

El modo visitante puede agregar de forma transparente nuevas funciones a una serie de objetos, para evitar modificar la serie de objetos durante el mantenimiento, y también puede realizar las funciones de los visitantes de forma disfrazada.

Debido a que es para una serie de operaciones de objetos, esto también genera algunos problemas si solo desea agregar funciones a algunos objetos en una serie de objetos; y siempre debe asegurarse de que esta serie de objetos se llame, sin importar si es un bucle, Aún recursivo, en resumen, se debe acceder a todos los objetos.

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

Este [pulido 23 patrones de diseño] tiene un total de 802 páginas. Los amigos que necesiten la versión completa pueden reenviar este artículo para seguir al editor, ver la imagen al final del artículo o el editor de mensajes privados [Tecnología] para obtenerlo. ! !

También hay videos y documentos de patrones de diseño 6.17G 23 para aprender, ¡espero que a todos les guste! !

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

 

El estudiante graduado de Tsinghua te lleva a pulir y dominar 23 patrones de diseño, con un total de 6.17G

 

Aprenda bien 23 patrones de diseño, ¡y no tendrá miedo de viajar por el mundo! ! El editor solo puede ayudar a todos los presentes, ¡espero que todos puedan aprovechar esta oportunidad de aprendizaje! ! Si desea obtener un aprendizaje profundo, consulte la imagen a continuación, escanee y agregue ~~~

 

Supongo que te gusta

Origin blog.csdn.net/Java_msb666/article/details/108753651
Recomendado
Clasificación