23 Modo de puente de patrón de diseño

Modo Puente

Problemas de operación del teléfono móvil, ahora es necesario implementar la programación de operación para diferentes tipos de teléfonos móviles y diferentes marcas (tales como: encender, apagar y navegar por Internet

Llame, etc.)

Inserte la descripción de la imagen aquí

Solución tradicional

La forma tradicional es escribir una clase de teléfono y luego escribir varios estilos diferentes de clases de teléfono móvil para heredar la clase de teléfono y, finalmente, escribir los métodos de arranque correspondientes para Huawei, Xiaomi y vivo en cada estilo.

Inserte la descripción de la imagen aquí

Análisis de problemas de soluciones tradicionales

  1. Desventajas: problemas de escalabilidad, cuando necesito agregar una marca de teléfono móvil, necesito agregar la categoría de teléfono móvil en todos los estilos al mismo tiempo
  2. Desventajas: Violar el principio de responsabilidad única. Cuando aumentamos el estilo de los teléfonos móviles, debemos aumentar los teléfonos móviles de todas las marcas al mismo tiempo, lo que aumenta el costo de mantenimiento del código.

Usa el modo puente para resolver

introducción básica

  1. El modo puente (modo puente) se refiere a la realización y abstracción en dos niveles diferentes, de modo que los dos niveles se pueden cambiar de forma independiente
  2. Es un patrón de diseño estructural
  3. El modelo Bridge se basa en el principio de diseño mínimo de clases. Permite que diferentes clases asuman diferentes responsabilidades mediante el uso de comportamientos como encapsulación, agregación y herencia. Su característica principal es separar la abstracción de la implementación (Implementación), para mantener La independencia de cada parte y la ampliación de sus funciones

Clase de cliente: llamador del modo puente

Abstracción: Mantiene el Implementador / es decir, su clase de implementación ConcreteImplementorA. Las dos son relaciones de agregación, y la Abstracción actúa como una clase puente.

RefinendAbstraction: es una subclase de abstracción abstracción

Implementador: la interfaz de la clase de implementación de comportamiento.

ConcreteImplementorA: clase de implementación de comportamiento específico

Inserte la descripción de la imagen aquí

Implementación del modo puente

Teléfono: Clase abstracta. Mantiene la marca, y la clase de implementación de la marca, teléfono móvil Xiaomi y teléfono móvil Huawei.

Marca: Necesidad de implementar la interfaz de comportamiento, la implementación específica es el teléfono móvil Xiaomi y el teléfono móvil Huawei

FoldedPhone / UpRightPhone: estilo de teléfono móvil específico, heredando la clase abstracta de teléfono

Inserte la descripción de la imagen aquí

Brenda

Varias interfaces funcionales que deben implementarse mediante teléfonos móviles

Inserte la descripción de la imagen aquí

Xiaomi / HuaWei

Diferentes marcas de teléfonos móviles se dan cuenta de la implementación específica de la escritura Branda.

Inserte la descripción de la imagen aquí

Teléfono

Una clase de teléfono móvil abstracta, que combina Marca, pasa diferentes marcas de teléfonos móviles a través del constructor y escribe métodos de implementación predeterminados para arrancar, apagar y realizar llamadas.

Inserte la descripción de la imagen aquí

PlegadoPhone / UpRightPhone

Los diferentes estilos de teléfonos móviles solo necesitan heredar Phoen y reescribir el método de la clase principal para lograr los efectos de encender, apagar y hacer llamadas en diferentes estilos de teléfonos móviles.

Inserte la descripción de la imagen aquí

Cliente

Inserte la descripción de la imagen aquí

Notas y detalles del modo puente

  1. Se realiza la separación de la parte de abstracción y la de implementación, lo que proporciona en gran medida la flexibilidad del sistema y hace que la parte abstracta y la parte de implementación sean independientes, lo que ayuda a que el sistema sea diseñado jerárquicamente, lo que resulta en un sistema mejor estructurado
  2. Para la parte de alto nivel del sistema, solo necesita conocer la parte abstracta y la parte de realización de la interfaz, las otras partes son completadas por el negocio específico
  3. El modo puente reemplaza el esquema de herencia multicapa, que puede reducir el número de subclases y reducir los costos de administración y mantenimiento del sistema.
  4. La introducción del modo puente es difícil de entender y diseñar el sistema, porque la relación de agregación se establece en la capa abstracta, los desarrolladores deben diseñar y programar para la abstracción.
    En lugar de esquemas de herencia multicapa, se puede reducir el número de subclases y se pueden reducir los costes de gestión y mantenimiento del sistema.
  5. La introducción del modo puente es difícil de entender y diseñar el sistema, porque la relación de agregación se establece en la capa abstracta, los desarrolladores deben diseñar y programar para la abstracción.
  6. El modo puente requiere la identificación correcta de dos dimensiones que cambian independientemente en el sistema, por lo que su ámbito de uso tiene ciertas limitaciones, es decir, se requiere un escenario de aplicación de este tipo.

Supongo que te gusta

Origin blog.csdn.net/weixin_44642403/article/details/114242017
Recomendado
Clasificación