设计模式:桥连模式(Bridge)

定   义:将抽象部分和它的实现部分分离,使它们可以独立的变化。

结构图:

实现类:

  //Implementor(实现)类
   public abstract class Implementor
    {
        public abstract void Operation();
    }

    /// <summary>
    /// 具体实现类A
    /// </summary>
    public class ConcreteImplementorA : Implementor
    {
        public override void Operation()
        {
            Console.WriteLine("具体实现A的方法执行");
        }
    }

    /// <summary>
    /// 具体实现类B
    /// </summary>
    public class ConcreteImplementorB : Implementor
    {
        public override void Operation()
        {
            Console.WriteLine("具体实现B的方法执行");
        }
    }
View Code

抽象类:

//Abstraction类
    class Abstraction
    {
        protected Implementor implementor;

        public void SetImplementor(Implementor i)
        {
            this.implementor = i;
        }

        public virtual void Operation()
        {
            implementor.Operation();
        }
    }

    //RefinedAbstraction类
    class RefinedAbstraction : Abstraction
    {
        public override void Operation()
        {
            implementor.Operation();
        }
    }
View Code

客户端调用:

            Abstraction a = new Abstraction();

            a.SetImplementor(new ConcreteImplementorA());
            a.Operation();

            a.SetImplementor(new ConcreteImplementorB());
            a.Operation();
View Code

结果:

抽象部分和它的实现部分分离?
可以理解为:实现系统可能有多角度分类,每一种分类都有可能变化,那就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。

原文地址:https://www.cnblogs.com/qianxingdewoniu/p/3554582.html