你的位置:首页 > ASP.net教程

[ASP.net教程]《大话设计模式》学习笔记18:桥接模式


  

  

手机品牌及手机软件示例:

  

1.Implementor:

  public abstract class HandsetSoft  {    public abstract void Run();  }

2.ConcreteImplementor(以游戏类为例):

  public class HandsetGame:HandsetSoft  {    public override void Run()    {      Console.WriteLine("运行手机游戏");    }  }

3.Abstraction:

  public abstract class HandsetBrand  {    protected HandsetSoft handsetSoft;    public void SetHandsetSoft(HandsetSoft handsetSoft)    {      this.handsetSoft = handsetSoft;    }    public abstract void Run();  }

4.RefinedAbstraction(以手机品牌N为例):

  public class HandsetBrandN:HandsetBrand  {    public override void Run()    {      handsetSoft.Run();    }  }

5.客户端代码:

  class Program  {    static void Main(string[] args)    {      HandsetBrand handsetBrand;      handsetBrand = new HandsetBrandN();      handsetBrand.SetHandsetSoft(new HandsetGame());      handsetBrand.Run();      handsetBrand.SetHandsetSoft(new HandsetAddressList());      handsetBrand.Run();      handsetBrand = new HandsetBrandM();      handsetBrand.SetHandsetSoft(new HandsetGame());      handsetBrand.Run();      handsetBrand.SetHandsetSoft(new HandsetAddressList());      handsetBrand.Run();    }  }

 

  “将抽象部分与它的现实部分分离”即实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。