C#设计模式之七桥接模式(Bridge Pattern)【结构型】
作者:互联网
意图:将抽象部分与实现部分分离,使它们可以独立的变化。
结构图:
public abstarct class Implementor{
public abstract void OperationImpl();
}
public abstarct class ConcreteImplementorA : Implementor{
public override void OperationImp(){
....
}
}
public abstarct class ConcreteImplementorB : Implementor{
public override void OperationImp(){
....
}
}
public abstract class Abstraction{
protected Implementor _implementor; //通过组合方式引入接口,相当于桥梁
//通过构造函数,初始化接口
protected Abstraction(Implementor implementor){
_implementor = implementor;
}
public abstract void Operation();
}
public class RefinedAbstraction : Abstraction{
public RefinedAbstraction(Implementor implementor) : base(implementor){}
public override void Operation(){
this._implementor. OperationImpl();
}
}
public class Client{
static void Main(){
var concreteA = new ConcreteImplementorA();
var refined = new RefinedAbstraction(concreteA);
refined. operation();
}
}
优点:把抽象接口与其实现解耦。抽象和实现可以独立扩展。实现细节对客户透明。
缺点:增加系统的复杂度。
使用场景:一个系统需要在抽象化角色和具体化角色之间添加更多灵活性。
一个类存在两个独立变化的维度,且两个维度都需要进行扩展。
标签:之七,implementor,RefinedAbstraction,桥接,void,class,Implementor,设计模式,public 来源: https://www.cnblogs.com/ljdong7/p/12557570.html