桥 接模式

简介: 桥 接模式

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

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


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     }
相关文章
|
网络协议 网络安全 数据安全/隐私保护
SiteGround搭建WordPress
本文将带你快速使用SiteGround搭建WordPress网站,与使用VPS搭建WordPress相比,使用SiteGround明显更加轻松,因为它无需写代码就能实现。本教程教程内容涵盖了购买域名、SiteGround服务器购买、域名DNS解析配置,以及SSL证书生成,帮助你迅速建立一个完整可用的WordPress网站。
876 0
SiteGround搭建WordPress
|
NoSQL Redis 数据库
蓝易云 - Redis.conf详解
以上就是Redis.conf的一些重要参数,更多详细的参数和设置,可以参考Redis官方文档。
86 4
|
前端开发 容器
CSS3新增文本属性(如果想知道CSS3新增文本属性的知识点,那么只看这一篇就够了!)
CSS3新增文本属性(如果想知道CSS3新增文本属性的知识点,那么只看这一篇就够了!)
|
弹性计算 运维 Shell
一键申请多个证书 shell 脚本
【4月更文挑战第29天】
149 1
|
网络安全 Windows
OpenSSH之Windows安装OpenSSH
OpenSSH之Windows安装OpenSSH
1182 0
js实现淘宝右侧导航栏功能
本章和大家分享的是模拟淘宝右侧导航栏的一个小功能。 左侧是商品内容,右侧是一个导航栏,当页面向下滚动的时候右侧导航栏也跟着移动
|
存储 网络协议 安全
拒绝服务攻击:就找你茬,咋滴啦!
拒绝服务攻击:就找你茬,咋滴啦!
318 0
|
前端开发
零基础CSS入门教程(17)——内边距
我们可以通过padding-top、padding-right、padding-bottom、padding-left、,分别设置元素的上、右、下、做外边距。内边距、外边距的使用都很频繁,因此我们要合理熟练的使用内外边距,达到更好的效果。本篇来介绍内边距,顾名思义,内边距是指的元素内部的内容,与元素的边的距离。上一篇介绍了外边距,也就是元素跟相邻元素的距离。
零基础CSS入门教程(17)——内边距