1:首先了解两个概念:
聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分
合成:则是一种强的‘拥有’关系,体现了严格的不分和整体的关系,部分和整体的生命周期一样
说明图:
2:桥接模式:将抽象不分与它的实现部分分离,使它们可以独立地变化
桥接模式(Bridge)结构图
3:具体形象化的设计
代码:
View Code
//手机品牌 abstract class HandsetBrand { protected HandsetSoft soft; //设置手机软件 public void SetHandsetSoft(HandsetSoft soft) { this.soft = soft; } //运行 public abstract void Run(); } //手机品牌N class HandsetBrandN : HandsetBrand { public override void Run() { soft.Run(); } } //手机品牌M class HandsetBrandM : HandsetBrand { public override void Run() { soft.Run(); } } //手机品牌S class HandsetBrandS : HandsetBrand { public override void Run() { soft.Run(); } }
View Code
//手机软件 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("运行手机通讯录"); } } //手机MP3播放 class HandsetMP3 : HandsetSoft { public override void Run() { Console.WriteLine("运行手机MP3播放"); } }
View Code
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(); }