码迷,mamicode.com
首页 > 编程语言 > 详细

java-桥接模式

时间:2019-03-25 00:48:36      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:bsp   abstract   bst   extend   实例   提高   实现类   好的   灵活   

一 概念

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

 

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

 

二 实例

比如我们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-桥接模式

标签:bsp   abstract   bst   extend   实例   提高   实现类   好的   灵活   

原文地址:https://www.cnblogs.com/hup666/p/10591313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!