java-桥接模式

Posted 鑫男

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java-桥接模式相关的知识,希望对你有一定的参考价值。

一 概念

    桥接模式用于把抽象化与实现化解耦,使得两者可以独立变化。
这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。

 

    实现要点:实现化类继承某个统一接口(桥接口),抽象化持有该接口的引用。

 

二 实例

比如我们A站点有A1,A2,A3, B站点有B1,B2,B3 我们要从A去到B

桥接口(实现化角色(Implementor)):Qiao

1 public interface Qiao {
2     //目的地B
3     void targetAreaB();
4 }



目的地B1,B2,B3(具体实现化角色)
 1  /**
 2  * 目的地B1
 3  */
 4 public class AreaB1 implements Qiao {
 5 
 6     @Override
 7     public void targetAreaB() {
 8         System.out.println("我要去B1");
 9     }
10 
11 }
12 
13 /**
14  * 目的地B2
15  */
16 public class AreaB2 implements Qiao {
17 
18     @Override
19     public void targetAreaB() {
20         System.out.println("我要去B2");
21     }
22 
23 }
24 
25 /**
26  * 目的地B3
27  */
28 public class AreaB3 implements Qiao {
29 
30     @Override
31     public void targetAreaB() {
32         System.out.println("我要去B3");
33     }
34 
35 }


抽象来源地A(抽象化角色)
1 public abstract class AreaA {
2     //引用桥接口
3     Qiao qiao;
4     //来源地
5     abstract void fromAreaA();
6 }

来源地A1,A2,A3(修正抽象化角色)
 1 /**
 2  * 来源地A1
 3  */
 4 public class AreaA1 extends AreaA {
 5 
 6     @Override
 7     void fromAreaA() {
 8         System.out.println("我来自A1");
 9     }
10     
11 }
12 
13 /**
14  * 来源地A2
15  */
16 public class AreaA2 extends AreaA {
17 
18     @Override
19     void fromAreaA() {
20         System.out.println("我来自A2");
21     }
22 
23 }
24 
25 /**
26  * 来源地A3
27  */
28 public class AreaA3 extends AreaA {
29 
30     @Override
31     void fromAreaA() {
32         System.out.println("我来自A3");
33     }
34 
35 }
 
测试类
1 public class Clienter {
2     public static void main(String[] args) {
3         AreaA a = new AreaA2();
4         a.qiao = new AreaB3();
5         a.fromAreaA();
6         a.qiao.targetAreaB();
7     }
8 }

输出结果
我来自A2
我要去B3

  注意点:

    1、定义一个桥接口,使其与一方绑定,这一方的扩展全部使用实现桥接口的方式,这就是被调用方。

    2、定义一个抽象类,来表示另一方,在这个抽象类内部要引入桥接口,而这一方的扩展全部使用继承该抽象类的方式,者一方是调用方。


三 特点
1. 分离抽象部分和实现部分
桥梁模式分离了抽象部分和实现部分,从而极大的提高了系统的灵活性。让抽象部分和实现部分独立出来,分别定义接口,这有助于对系统进行分层,从而产生更好的结构化的系统。

2. 更好的拓展
桥梁模式使得抽象部分和实现部分可以分别独立的扩展,而不会相互影响,从而大大提高了系统的可扩展性。

 

以上是关于java-桥接模式的主要内容,如果未能解决你的问题,请参考以下文章

Java设计模式:桥接模式

JAVA SCRIPT设计模式--结构型--设计模式之Bridge桥接模式

Java设计模式之——桥接模式

图解Java设计模式之桥接模式

java设计模式之桥接模式

JAVA_桥接模式