桥接(Bridge)模式 结构型模式
更新: 2023-05-24 11:11:27 字数: 0 字 时长: 0 分钟
将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
c#
// 桥接模式示例
using System;
// 定义一个抽象类,表示一个抽象的实现
abstract class Implementor
{
public abstract void Operation();
}
// 定义一个具体实现类A
class ConcreteImplementorA : Implementor
{
public override void Operation()
{
Console.WriteLine("具体实现A的方法执行");
}
}
// 定义一个具体实现类B
class ConcreteImplementorB : Implementor
{
public override void Operation()
{
Console.WriteLine("具体实现B的方法执行");
}
}
// 定义一个抽象类,表示一个抽象的抽象类
abstract class Abstraction
{
protected Implementor implementor;
public void SetImplementor(Implementor implementor)
{
this.implementor = implementor;
}
public abstract void Operation();
}
// 定义一个具体的抽象类A
class RefinedAbstractionA : Abstraction
{
public override void Operation()
{
implementor.Operation();
Console.WriteLine("具体抽象类A的方法执行");
}
}
// 定义一个具体的抽象类B
class RefinedAbstractionB : Abstraction
{
public override void Operation()
{
implementor.Operation();
Console.WriteLine("具体抽象类B的方法执行");
}
}
// 客户端
class Client
{
static void Main(string[] args)
{
Abstraction ab = new RefinedAbstractionA();
ab.SetImplementor(new ConcreteImplementorA());
ab.Operation();
ab.SetImplementor(new ConcreteImplementorB());
ab.Operation();
Console.Read();
}
}