桥模式





0/5 (0投票)
桥接模式桥接模式将抽象部分与其实现部分解耦,使得二者可以独立变化。换句话说,我们创建了一个
桥接模式
桥接模式将抽象部分与其实现部分解耦,使得
二者可以独立变化。换句话说,我们在
抽象部分和其实现部分之间创建了一个桥接,因此我们不会有
两者之间的绑定。当我们需要在运行时
选择或切换实现时,此模式很有帮助。
有关该模式的UML图,请访问dofactory 站点。
C# 示例
它是如何工作的?让我们来看一个简单的例子。
#region 抽象部分
public class Abstraction
{
#region 成员
private Bridge _bridge;
#endregion
#region 构造函数
/// <summary>
/// 使用给定的桥接构造一个新的 Abstraction 对象
/// <param name="bridge">给定的桥接</param>
/// </summary>
///
public Abstraction(Bridge bridge)
{
_bridge = bridge;
}
#endregion
#region 方法
/// <summary>
/// 此方法演示了通过其抽象调用桥接对象
///
/// </summary>
public void Operation()
{
Console.Write("使用");
_bridge.OperationImplementation();
}
#endregion
}
#endregion
#region 桥接及其实现
public interface Bridge
{
void OperationImplementation();
}
public class BridgeImplementationA : Bridge
{
#region 桥接成员
/// <summary>
/// 执行实现 A 操作
/// </summary>
public void OperationImplementation()
{
Console.Write("BridgeImplementationA");
}
#endregion
}
public class BridgeImplementationB : Bridge
{
#region 桥接成员
/// <summary>
/// 执行实现 B 操作
/// </summary>
public void OperationImplementation()
{
Console.Write("BridgeImplementationB");
}
#endregion
}
#endregion
您可以看到抽象部分包含一个桥接对象,并在
构造函数中获取桥接对象。因此,每当需要其中一个实现时,您都会将其
传递给构造函数,并且您不会与实现耦合。
摘要
总而言之,当您发现编写的操作
并不总是需要以相同的方式实现时,请使用桥接模式。
另一个原因是不将抽象与其实现绑定。