Patrones de diseño Java 23-19. Patrón intermedio de patrones de comportamiento

Además de los principios de diseño en Java, también hay 23 patrones de diseño.

Estos patrones han sido acumulados por los predecesores poco a poco, han ido mejorando y optimizando, y estos patrones de diseño pueden resolver algunos problemas específicos.

Y en estos modos, se puede decir que el uso del lenguaje se refleja plenamente.

¡Entonces vamos a aprender   el modelo intermedio en el   modelo de comportamiento hoy     !

Modelo intermediario

Empecemos con una enciclopedia, ¿qué es el modelo intermedio?

Muy bien, pero no hay ganancia, aquí voy a hablar de lo que se llama modelo intermediario.

El modelo de intermediario, como su nombre indica, primero debe tener un intermediario, es decir, un tercero, este tercero se utiliza principalmente para "mantenimiento"

Por ejemplo: es como buscar una casa. No podemos ir a una ciudad a buscar una casa porque no sabemos dónde hay casas vacías en esta ciudad. Si preguntamos una por una, ¿cuándo tendremos En ese momento, había un intermediario que podía decirnos que hay casas allí, para que nos ahorremos problemas, y si el dueño cambia el precio o algo, todos podemos conocer la noticia directamente.

La definición y características del modelo intermediario

La definición del modo Mediador: define un objeto mediador para encapsular la interacción entre una serie de objetos, aflojar el acoplamiento entre los objetos originales y cambiar de forma independiente la interacción entre ellos. El modelo intermedio también se denomina modelo de mediación, que es una aplicación típica de la ley de Dimit.

El modelo intermedio es un modelo de comportamiento de objetos y sus principales ventajas son las siguientes.

1. Reducir el acoplamiento entre objetos, haciendo que los objetos sean fáciles de reutilizar de forma independiente.

2. Cambie la asociación uno a varios entre objetos en una asociación uno a uno, mejore la flexibilidad del sistema y haga que el sistema sea fácil de mantener y expandir.

La principal desventaja es: cuando hay demasiados colegas, las responsabilidades del intermediario serán muy grandes, se volverán complejas y grandes, por lo que el sistema será difícil de mantener.

 

Aquí hablaré de la ley de Dimit.

Ley de Dimit

La ley de Dimit se define como: si dos entidades de software no necesitan comunicarse directamente, entonces no debe haber una llamada mutua directa y la llamada puede ser reenviada a través de un tercero. Su propósito es reducir el grado de acoplamiento entre clases y mejorar la independencia relativa de los módulos.

En términos sencillos, es la relación entre yo, WeChat y las tarjetas bancarias. Solía ​​tomar muchas tarjetas bancarias cuando salía. Ahora solo necesito tener un WeChat. Pagar directamente a través de WeChat para deducir mi dinero.

Para obtener más información, consulte mi blog: Principio de diseño orientado a objetos de Java 6-Ley de Dimit

La estructura y realización del modelo intermediario

1. Rol

Primero, echemos un vistazo a los personajes que participan en este modo.

1. Función de intermediario abstracto: es la interfaz del intermediario y proporciona métodos abstractos para el registro de objetos de colega y el reenvío de información de objeto de colega.

2. Rol de intermediario específico: implementar la interfaz de intermediario, definir una Lista para administrar los objetos de los compañeros y coordinar la interacción entre cada rol de colega, por lo que depende del rol del colega.

3. Función de clase de colega abstracto: defina la interfaz de la clase de colega, guarde el objeto intermediario, proporcione un método abstracto para la interacción del objeto de colega y realice las funciones comunes de la clase de colega que se afectan entre sí.

4. Rol de colega específico: es el implementador de la clase de colega abstracto, cuando es necesario interactuar con otros objetos de colega, el objeto intermediario es responsable de las interacciones posteriores.

 

Después de conocer el rol, escribamos un ejemplo. Este ejemplo es un ejemplo de esta agencia de vivienda.

primer paso:

Primero definamos el intermediario abstracto. Este es en realidad el intermediario de vivienda. También necesitamos definir dos métodos en esta clase abstracta, a saber, el registro de usuario y los métodos de reenvío.

 

El segundo paso:

Consigamos otro implementador, aquí necesitamos implementar estos dos métodos

 

Pero no nos demos cuenta, pongámoslo así primero

tercer paso:

Definimos una clase colega abstracta, que es el cliente.

Por supuesto, esto solo no es suficiente, necesitamos agregar algunos métodos

Por supuesto, necesitamos tener un intermediario para enviar información, por lo que aquí también definimos el intermediario de la casa y damos un método establecido.

 

 

el cuarto paso:

Cree una clase de colega de implementación específica, aquí somos el usuario específico especificado

Consigamos al cliente A y al cliente B

 

Pero te saldrá un error al llamar a repago, aquí vamos a modificar el método de nuestra agencia de la casa

OK

el quinto paso:

Luego, obtenga el cliente B usted mismo y llame al mismo código que el cliente A

El sexto paso:

Aquí comenzamos a escribir el código comercial implementado por el intermediario específico

Primero necesitamos una colección List para almacenar estos usuarios

 

Luego comenzamos a escribir el código de negocio específico. Antes de escribir, podemos ver que ni el método register ni el método repay tienen nuestro objeto cliente. Aquí, necesitamos modificar nuevamente el método intermediario abstracto.

A continuación, almacenamos a nuestros clientes en la lista en el registro y llamamos al método set para pasar el intermediario a la clase de implementación de usuario específica.

Luego, cuando devolvemos la notificación, juzgamos si es el objeto actual, si no, llamamos a su método de recepción

prueba:

Primero definimos nuestro intermediario, luego definimos dos clientes y nos registramos en este intermediario.

Luego dejamos que envíen un aumento de precio.

Mira el resultado

Por supuesto, puede hacer una distinción aquí. Por ejemplo, A dice: B recibe: para que pueda distinguir claramente

 

Está bien, eso es todo, todos miren bien. Practica mucho. Si tiene alguna pregunta, comuníquese conmigo QQ: 2100363119

Bienvenidos a todos a visitar mi sitio web personal: lemon1234.com Gracias por dejar un mensaje

Supongo que te gusta

Origin blog.csdn.net/weixin_45908370/article/details/109657682
Recomendado
Clasificación