Descripción general
Modo puente Un modelo estructural, que se ocupa principalmente de: debido a las necesidades reales, una clase tiene dos o más cambios dimensionales. Si solo se usa la herencia, esta necesidad no se logrará, o el diseño se hincha bastante.
El modo del puente es abstraer las partes cambiantes, separar las partes cambiantes de la clase principal, separando completamente los cambios en múltiples dimensiones. Finalmente, se proporciona una clase de gestión para combinar cambios en diferentes dimensiones, y esta combinación se utiliza para satisfacer las necesidades del negocio.
Diagrama de estructura UML
Ejemplo de código
entrevista de paquete; implementador de interfaz {void operationImpl ();} resumen de clase abstract {implementador de implementador protegido; Public Abstract (implementer implementer) {this.implementor = implementer; } public void operation () {implementer.operationImpl (); }} clase ConcreteImplementora implementa implementador {@Override public void operationImpl () {System.out.println ("Implementación específica A"); }} clase ConcreteImplementorB implementa implementador {@Override public void operationImpl () {System.out.println ("Implementación específica B"); }} La clase RefinedAbstraction extiende abstracto {public RefinedAbstraction (implementador de implementador) {super (implementador); } public void othersperation () {system.out.println ("otras operaciones"); }} public class Mantest {public static void main (string arg []) {implementer implementer = new ConcreteMplementora (); RefinedabStraction abstraction = new RefinedAbStraction (implementador); abstracción.operation (); abstracción.otheroperation (); }}Use escenarios
1. Si no desea adoptar una relación vinculante fija en las partes de abstracción e implementación, puede usar el modo puente para separar las partes de abstracción e implementación, y luego establecer dinámicamente las implementaciones específicas necesarias para la abstracción durante la operación del programa, y también puede cambiar dinámicamente las implementaciones específicas.
2. Si tanto la parte abstracta como la parte de implementación se pueden expandir, se puede usar un modo de puente para que la parte abstracta y la parte de implementación puedan cambiarse de forma independiente, para que la expansión se pueda expandir de manera flexible por separado, en lugar de revolver. Un lado de la expansión puede afectar al otro lado.
3. Si desea implementar modificaciones parciales, no afectará al cliente. Puede usar el modo puente. El cliente ejecuta una interfaz orientada a resumen. Las modificaciones de lo parcial pueden ser independientes de la parte abstracta, y no afectará al cliente. También se puede decir que es transparente para el cliente.
4. Si se adopta un esquema de implementación heredado, se generarán muchas subclases. Para este caso, puede considerar usar un modo de puente para analizar las razones de los cambios en las funciones para ver si pueden separarse en diferentes dimensiones, y luego separarlos a través del modo puente para reducir el número de subclases.
Si un sistema necesita agregar más flexibilidad entre los roles abstractos y concretados construidos, evite crear conexiones estáticas entre los dos niveles.
Tanto los caracteres abstractos como los caracteres concretos deberían poder ser subclasificados. En este caso, el patrón del puente puede combinar de manera flexible diferentes roles abstractos y concretos y expandirse de forma independiente.
Cualquier cambio en el diseño requiere que el papel de implementación no afecte al cliente, o que los cambios de rol de implementación sean completamente transparentes para el cliente.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.