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.)
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.
Análisis de problemas de soluciones tradicionales
- 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
- 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
- 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
- Es un patrón de diseño estructural
- 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
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
Brenda
Varias interfaces funcionales que deben implementarse mediante teléfonos móviles
Xiaomi / HuaWei
Diferentes marcas de teléfonos móviles se dan cuenta de la implementación específica de la escritura Branda.
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.
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.
Cliente
Notas y detalles del modo puente
- 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
- 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
- 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.
- 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. - 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.
- 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.