1. 概述
将抽象部分(Abstraction)与实现部分(Implementor)分离,使它们可以独立地变化。
2. 解决的问题
在软件系统中,有些类型由于自身的逻辑,它具有两个或多个维度的变化。为了解决这种多维度变化,又不引入复杂度,这就要使用Bridge模式。
3. 模式中的角色
2.1 抽象(Abstraction):定义抽象接口,该接口中包含实现具体行为、具体特征的Implementor接口。
2.2 提炼的抽象(RefinedAbstraction):继承自Abstraction的子类,依旧是一个抽象的事物名。
2.3 实现(Implementor):定义具体行为,具体特征的应用接口。
2.4 具体实现(ConcreteImplementor):实现Implementor。
4. 模式解读
4.1 实现要点
Bridge模式使用“对象间的组合/聚合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化
4.2 桥接模式的类图
4.3 桥接模式的实现代码
/// <summary>
/// 实现
/// </summary>
public abstract class Implementor
{
public abstract void Opration();
}
public class ConcreteImplementorA : Implementor
{
public override void Opration()
{
Console.WriteLine("具体实现A的方法执行。");
}
}
public class ConcreteImplementorB : Implementor
{
public override void Opration()
{
Console.WriteLine("具体实现B的方法执行。");
}
}
/// <summary>
/// 抽象
/// </summary>
public abstract class Abstraction
{
protected Implementor implementor;
public void SetImplementor(Implementor implementor)
{
this.implementor = implementor;
}
public abstract void Opration();
}
/// <summary>
/// 被提炼的抽象
/// </summary>
public class RefinedAbstraction : Abstraction
{
public override void Opration()
{
implementor.Opration();
}
}











