设计模式:桥连模式(Bridge)
定 义:将抽象部分和它的实现部分分离,使它们可以独立的变化。
结构图:
实现类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//Implementor(实现)类 public abstract class Implementor { public abstract void Operation(); } /// <summary> /// 具体实现类A /// </summary> public class ConcreteImplementorA : Implementor { public override void Operation() { Console.WriteLine("具体实现A的方法执行"); } } /// <summary> /// 具体实现类B /// </summary> public class ConcreteImplementorB : Implementor { public override void Operation() { Console.WriteLine("具体实现B的方法执行"); } }
抽象类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
//Abstraction类 class Abstraction { protected Implementor implementor; public void SetImplementor(Implementor i) { this.implementor = i; } public virtual void Operation() { implementor.Operation(); } } //RefinedAbstraction类 class RefinedAbstraction : Abstraction { public override void Operation() { implementor.Operation(); } }
客户端调用:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
Abstraction a = new Abstraction(); a.SetImplementor(new ConcreteImplementorA()); a.Operation(); a.SetImplementor(new ConcreteImplementorB()); a.Operation();
结果:
抽象部分和它的实现部分分离?
可以理解为:实现系统可能有多角度分类,每一种分类都有可能变化,那就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。