前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Head First设计模式——桥接模式

Head First设计模式——桥接模式

作者头像
SpringSun
发布2020-08-11 15:11:50
4270
发布2020-08-11 15:11:50
举报
文章被收录于专栏:技术赋能学术技术赋能学术

桥接模式

桥接模式:不只改变你的实现,也改变你的抽象。

如果有一个电视厂家,遥控器需要升级,电视也需要修改。这种变化部分的封装就适合使用桥接模式,桥接模式通过将实现和抽象放在两个不同的类层次中而使它们可以独立改变。

设计类图:

实现遥控器抽象类

代码语言:javascript
复制
1     public abstract class RemoteControl
2     {
3         public TV tv;
4         public void SetTV(TV tv) {
5             this.tv = tv;
6         }
7 
8         public abstract void SetChannel();
9     }

具体子类

代码语言:javascript
复制
1     public class ConcreteRemote : RemoteControl
2     {
3         public override void SetChannel()
4         {
5             this.tv.TuneChannel();
6         }
7     }

TV接口类

代码语言:javascript
复制
1     public interface TV 
2     {
3         public void TuneChannel();
4     }

特定TV实现

代码语言:javascript
复制
 1      class PandaTV : TV
 2     {
 3         public void TuneChannel()
 4         {
 5             Console.WriteLine("熊猫电视调频道");
 6         }
 7     }
 8 
 9 
10     class ChangHongTV:TV
11     {
12         public void TuneChannel()
13         {
14             Console.WriteLine("长虹电视调频道");
15         }
16     }

测试桥接模式

   现在有了两个层次结构,其中一个是遥控器,另一个是平台特定电视机实现。有了桥接的存在,就可以独立的改变这两个层次。

桥接的优点:

1、将实现予以解耦,让它和界面之间不再永久绑定。

2、抽象和实现可以独立扩展,不会影响到对方。

3、对于”具体的抽象类“所做的改变,不会影响到客户

桥接的用途和缺点:

1、适合使用在需要跨平台的图形和窗口系统上。

2、当需要用不同的方式改变接口和实现时,桥接模式很好用。

3、桥接模式的确定时增加了复杂度。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 桥接模式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档