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?