GGYS

博客园 首页 新随笔 联系 订阅 管理

桥接模式:是将抽象部分与它的实现部分分离,使它们都可以独立地变化。

这么说可能就比较抽象了,但是如果通过这张图片来理解的话就会比较简单了。

1. 手机品牌抽象类

       桥梁的一头。

 1 public abstract class HandsetBrand {
 2 
 3     protected HandsetSoft soft;
 4     
 5     //设置手机软件
 6     public void setHandsetSoft(HandsetSoft soft) {
 7         this.soft = soft;
 8     }
 9     
10     //运行
11     public abstract void run();
12     
13 }

 2. 手机软件抽象类

       桥梁的另一头。两者通过一条聚合线连接,表示一个手机品牌可以有多个软件。

1 public abstract class HandsetSoft {
2 
3     public abstract void run();
4     
5 }

    3. 各类手机品牌

       这里写一个,多余的不再赘述。

1 public class HandsetBrandA extends HandsetBrand {
2 
3     @Override
4     public void run() {
5         soft.run();
6     }
7     
8 }

4. 各类手机软件

       有游戏、通讯录等等,这里写一个,多余不再赘述。

1 public class HandsetGame extends HandsetSoft {
2 
3     @Override
4     public void run() {
5         System.out.println("运行手机游戏");
6     }
7 
8 }

5. Client客户端

 1 public class Client {
 2 
 3     public static void main(String[] args) {
 4         HandsetBrand ab;
 5         
 6         //使用A品牌手机
 7         ab = new HandsetBrandA();
 8         System.out.println("A品牌手机:");
 9         
10         ab.setHandsetSoft(new HandsetGame());
11         ab.run();
12         
13         ab.setHandsetSoft(new HandsetAddressList());
14         ab.run();
15         
16         //分隔符
17         System.out.println("---------------");
18         
19         //使用B品牌手机
20         ab = new HandsetBrandB();
21         System.out.println("B品牌手机:");
22         
23         ab.setHandsetSoft(new HandsetGame());
24         ab.run();
25         
26         ab.setHandsetSoft(new HandsetAddressList());
27         ab.run();
28     }
    
30 }
posted on 2020-12-27 20:00  pengpeng077  阅读(8)  评论(0)    收藏  举报  来源