23种设计模式----桥接模式(结构性设计模式)
理解:让实现的的部分分离出来,抽象化可以自定义变化
请看代码案例
public interface ISystem
{
string System();
string Version();
}
public class IOSSystem : ISystem
{
public string System()
{
return "IOS";
}
public string Version()
{
return "9.4";
}
}
public class AndroidSystem : ISystem
{
public string System()
{
return "Android";
}
public string Version()
{
return "6.0";
}
}
上述代码就是安卓和ios都有系统跟版本号,桥接怎么桥接呢? 现在呢我们建立所谓的桥,将两个互不相同的东西呢能够连接起来, 套路就是抽象化
建立一个苹果手机的桥
public ISystem SystemVersion { get; set; }
public abstract void Call();
public class GalaxyBridge : BasePhoneBridge
{
public override void Call()
{
Console.WriteLine("Use OS {0}.{1}.{2} Call", this.GetType().Name, this.SystemVersion.System(), this.SystemVersion.Version());
}
}
public class iPhoneBridge : BasePhoneBridge
{
public override void Call()
{
Console.WriteLine("Use OS {0}.{1}.{2} Call", this.GetType().Name, this.SystemVersion.System(), this.SystemVersion.Version());
}
}
调用的时候就可以把苹果的信息传到安卓这个里面来
ISystem ios = new IOSSystem();
BasePhoneBridge phone = new GalaxyBridge();
phone.SystemVersion = ios;
phone.Call();
|