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

桥接模式

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

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

设计类图:

 

 

实现遥控器抽象类

1     public abstract class RemoteControl
2     {
3         public TV tv;
4         void SetTV(TV tv) {
5             this.tv = tv;
6         }
7 
8          SetChannel();
9     }

具体子类

 ConcreteRemote : RemoteControl
override  SetChannel()
4         {
this.tv.TuneChannel();
7     }

TV接口类

interface TV 
 TuneChannel();
4     }

特定TV实现

 1       PandaTV : TV
 2  3          TuneChannel()
 4  5             Console.WriteLine("熊猫电视调频道");
 6  7     }
 8 
 9 
10      ChangHongTV:TV
11 12         13 14             Console.WriteLine(长虹电视调频道15 16     }

测试桥接模式

 

 

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

桥接的优点:

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

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

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

桥接的用途和缺点:

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

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

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

相关文章

什么是设计模式一套被反复使用、多数人知晓的、经过分类编目...
单一职责原则定义(Single Responsibility Principle,SRP)...
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强...
适配器模式将一个类的接口转换成客户期望的另一个接口,使得...
策略模式定义了一系列算法族,并封装在类中,它们之间可以互...
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,...