大话设计模式-桥接模式

桥接模式

桥接模式将抽象部分和他的实现部分分离,是它们都可以独立地变化。

抽象与他的实现分离并不是说让抽象类与其派生类分离,因为这没有任何意义,实现指的是抽象类和他的派生类用来实现自己对象。

实现系统可能有多角度分裂,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立变化,减它们之间的耦合。

 


 

桥接模式结构演示

实现

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

具体实现

class PhoneGame : PhoneSoft
{
    public override void Run() => Console.WriteLine("运行手机游戏");
}
class PhoneMessage : PhoneSoft
{
    public override void Run() => Console.WriteLine("运行手机短信");
}

抽象

abstract class PhoneBrand
{
    protected PhoneSoft soft;
    public void SetPhoneSoft(PhoneSoft soft) => this.soft = soft;
    public abstract void Run();
}

被提炼的抽象

class PhoneBrandA : PhoneBrand
{
    public override void Run() => soft.Run();
}
class PhoneBrandB : PhoneBrand
{
    public override void Run() => soft.Run();
}

测试

PhoneBrand pb;
pb = new PhoneBrandA();//手机品牌A
pb.SetPhoneSoft(new PhoneGame());//运行游戏
pb.Run();
pb = new PhoneBrandB();//手机品牌B
pb.SetPhoneSoft(new PhoneMessage());//运行短信
pb.Run();
//测试结果
运行手机游戏
运行手机短信

 

posted @ 2018-12-05 19:03  田错  阅读(234)  评论(0编辑  收藏  举报