Red de conocimiento informático - Material del sitio web - Daniel te ayudará a comprender: ¿Qué patrones de diseño se utilizan en JDK?

Daniel te ayudará a comprender: ¿Qué patrones de diseño se utilizan en JDK?

Autor: Fei Chao

Referencia a literatura extranjera: /lPtD

Modo adaptador:

Fei Chao susurró: En nuestro código comercial A menudo existen requisitos para la adaptación de interfaces nuevas y antiguas, por lo que se puede utilizar este modo.

Modo puente:

Fei Chao susurró: De hecho, usamos este modo todos los días, pero es posible que no lo sepas. Siempre que utilice programación orientada a interfaz, en realidad estará utilizando el modo puente.

Modo combinado

Fei Chao susurró: De la oración en inglés anterior, podemos saber que el modo combinado se usa a menudo para optimizar operaciones recursivas. Por ejemplo, cada empresa tiene un El jefe. El sistema tendrá algunas funciones de menú. Por ejemplo, un menú de primer nivel tiene un menú de segundo nivel y un menú de segundo nivel tiene un menú de tercer nivel. Al eliminar un menú de primer nivel, debe eliminar submenús continuamente, luego puede probar este patrón de diseño. En resumen, puede probar este patrón de diseño siempre que haya operaciones en cascada.

Modo decorador

Fei Chao susurró: Este modo se usa demasiado. Nuestro AOP de uso común tiene tanto un proxy dinámico como un sabor decorador.

Modo fachada

Fei Chao susurró: El registro SLFJ que usamos todos los días es el registro de fachada. Por ejemplo, cuando usamos Dubbo, intentamos usar el modo fachada para servicios externos. y luego servir Llamando a varios servicios para agregación.

Modo Flyweight

Fei Chao susurró: Mientras se use el caché, básicamente se usa el modo Flyweight. Muchos estudiantes dicen que sus proyectos son demasiado bajos y no usan ningún patrón de diseño. ¿No es esto una broma? Si usas un mapa para almacenar en caché varios objetos, básicamente usas la idea de peso mosca.

Modo proxy

Fei Chao susurró: El modo proxy se usa ampliamente. Básicamente, todos los marcos de código abierto que todos conocen usan proxies dinámicos.

Patrón de fábrica abstracto

Fei Chao susurró: Del inglés se puede concluir que este patrón se puede utilizar junto con el patrón de estrategia.

Modo Constructor

Fei Chao susurró: Este escenario se usa demasiado en nuestro código comercial. Por ejemplo, la mayoría de los proyectos en el sistema de pedidos lo tienen. El objeto de pedido es un objeto complejo, por lo que podemos usar el patrón de construcción para hacerlo.

Método de fábrica

Fei Chao susurró: Este es un patrón de diseño que todos conocen y no lo presentaré más.

Modo prototipo

Fei Chao susurró: Crees que este es un patrón de diseño impopular, pero en realidad estás equivocado. Este es un patrón de diseño muy popular. Por ejemplo, nuestro código comercial a menudo requiere varias conversiones DTO, BO, DO y VO. De hecho, podemos referirnos a la idea del patrón de diseño del prototipo para hacerlo.

Modo singleton

Fei Chao susurró: En el desarrollo diario, usamos más singleton, porque los beans de Spring tienen un nivel singleton de forma predeterminada. Singleton es un patrón de diseño que básicamente todo el mundo conoce.

Cadena de responsabilidad

Fei Chao susurró: Todo lo que tiene la palabra clave Filtro básicamente utiliza este patrón de diseño. Hay muchos escenarios donde se usa código comercial, y este patrón de diseño se usa básicamente dondequiera que se usen interceptores.

Modo de comando

Fei Chao susurró: El modo de comando se usa con más frecuencia y es similar al modo de estrategia. Puedes buscar diferencias específicas. Si ha utilizado el motor de flujo de trabajo Activiti, puede echar un vistazo al código fuente. El modo de comando se utiliza en muchos lugares.

Modo intérprete

Modo iterador

Fei Chao susurró: Este middleware y los estudiantes del grupo de marco básico pueden usarlo más, código comercial No se usa mucho , pero este uso en JDK es muy clásico, puedes echarle un vistazo.

Modo mediador

Modo nota

Modo de objeto vacío

Fei Chao susurró: Este código comercial no se usa mucho, pero estos métodos. en el JDK los utilizamos con bastante frecuencia.

Modo observador

Fei Chao susurró: Nuestro código comercial generalmente se basa en Zookeeper como observador.

Básicamente, dondequiera que se use ZK, se usa el modo observador, como bloqueos distribuidos, descubrimiento de servicios, etc.

Modo de estado

Fei Chao susurró: Esto se usa tan ampliamente en el código comercial que no creo que su sistema aún no tenga "estado". Por ejemplo, se pueden utilizar nuestro estado de pedido común o varios estados XX.

Modo estrategia

Modo método de plantilla

Fei Chao susurró: Este modo también es un modo de muy alta frecuencia. A menudo encontramos muchas partes similares en el código comercial. Podemos crear clases y subclases abstractas para lograr la diferenciación. Si aún no lo sabe, búsquelo rápidamente.

Patrón de visitante

¿Qué patrones de diseño utilizas en tus proyectos? ¿O tiene mejores escenarios para los patrones de diseño anteriores en el código comercial real?