什么是桥接模式
桥接模式是将抽象部分与它的实现部分分离,使它们可以独立的变化。实现系统可能有多角度分类,每一种人类都有肯能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合!
举例说明:
桥接模式最终要的作用就是松耦合的一个过程
当我们有一个N品牌的手机,它有一个小游戏,同样的,我现在有一个M品牌的手机,也有小游戏,我想让这两个手机都有游戏!
运行手机游戏:
class HandsetGame:Handsetsoft
{
public override void Run()
{
Console.WriteLine("运行手机游戏");
}
}
M品牌和N品牌手机功能 class HandsetMP3:Handsetsoft
{
public override void Run()
{
Console.WriteLine("运行手机MP3播放");
}
}
public override void Run()
{
Console.WriteLine("运行手机通讯录");
}
}
static void Main(string[] args)
如果每个品牌都增加一个MP3音乐播放功能,我们就只能在每个品牌的下面都增加一个子类。ab=new HandsetMP3(); ab.run(); ab=new handsetaddresslist(); ab.run();
所以为了避免这种情况的发生,我们可以利用桥接设计模式。
品牌M和N的具体类
class HandsetBrandM:HandsetBrand { public override void Run() { soft.Run(); } }
客户端调用代码:class HandsetBrandN:HandsetBrand { public override void Run() { soft.Run(); } }
class Program { 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 HandsetAddresslist()); ab.Run(); Console.Read(); } }
这样之后我们想要增加一个功能,只需要增加子类就行了!