大话设计之桥接模式
2014-05-23 10:02
197 查看
桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。
首先什么叫抽象与它的实现分离,不是说,让抽象类与其派生类分离,因为没有意义,实现指的是抽象类和它的派生类用来实现自己的对象。
下面来看一段代码:
如下面代码:
如果增加品牌只需要增加一个子类:S品牌。
继承是一种强耦合的结构,父类变,子类就会改变。对于桥接模式,理解为实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。
首先什么叫抽象与它的实现分离,不是说,让抽象类与其派生类分离,因为没有意义,实现指的是抽象类和它的派生类用来实现自己的对象。
下面来看一段代码:
class 桥接模式 { static void Main(string[] args) { HandsetBrand ab; ab = new HandsetBrandN(); ab.SetHandsetSoft (new HandsetGame() ); ab.Run (); ab.SetHandsetSoft (new HandsetAddressList() ); ab.Run (); ab=new HandsetBrandM (); ab.SetHandsetSoft (new HandsetGame() ); ab.Run(); ab.SetHandsetSoft (new HandsetAddressList() ); ab.Run (); Console .Read (); } } abstract class HandsetSoft //手机软件类 { public abstract void Run(); } class HandsetGame : HandsetSoft //手机游戏类 { public override void Run() { Console.WriteLine("运行手机游戏"); } } class HandsetAddressList : HandsetSoft //手机通讯录类 { public override void Run() { Console .WriteLine ("运行手机通讯录"); } } abstract class HandsetBrand //手机品牌 { protected HandsetSoft soft; //设置手机软件 public void SetHandsetSoft(HandsetSoft soft) { this.soft = soft; } //运行 public abstract void Run(); } class HandsetBrandN : HandsetBrand { public override void Run() { soft.Run (); } } class HandsetBrandM : HandsetBrand { public override void Run() { soft.Run (); } }如果增加MP3功能,只需要增加这个类就可以了:
如下面代码:
//手机MP3播放 class HandsetMP3 : HandsetSoft { public override void Run() { Console.WriteLine("运行手机MP3播放"); } }
如果增加品牌只需要增加一个子类:S品牌。
//手机品牌S class HandsetBrandS : HandsetBrand { public override void Run() { soft.Run(); } }看上面的代码,想到了开放-封闭原则,这样不用修改原来的代码,只需要拓展类就可以了。
继承是一种强耦合的结构,父类变,子类就会改变。对于桥接模式,理解为实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。
相关文章推荐
- 大话设计之桥接模式
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系
- 设计模式与VB .net实现 桥接模式,单件模式
- 设计模式之Bridge(桥接)
- [导入]C#面向对象设计模式纵横谈之7.Bridge 桥接模式
- C# 设计模式 之 桥接模式
- .NET设计模式(9):桥接模式(Bridge Pattern)
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系(转)
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系
- 设计模式系列漫谈之十一 - 桥接模式
- .NET设计模式(9):桥接模式(Bridge Pattern)
- 设计模式学习笔记(八)——Bridge桥接
- Dot Net设计模式—桥接模式
- .NET设计模式-桥接模式(Bridge Pattern)
- 设计模式----桥接模式
- 设计模式之Bridge桥接设计模式
- 乐在其中设计模式(C#) - 桥接模式(Bridge Pattern)
- 设计模式学习(八)桥接模式-组合模式-装饰模式
- 设计模式学习笔记(八)——Bridge桥接模式
- 设计模式之桥接(Bridge)---对象结构性模式