桥接(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();
    }
}




