C# 设计模式-桥接(Bridge)

将抽象部分和实现部分分离,使它们可以独立变化

主要组成:
Abstraction(抽象类)
RefinedAbstraction(抽象类的子类)
Implementor(实现接口)
ConcreteImplementor(具体实现类)

适配器和桥接的区别:

  • 适配器:用来帮助无关的类协同工作,通常在系统设计完成后才使用。
  • 桥接:在系统开始时就使用,使抽象部分和实现部分分离。

    抽象和实现:

using System;

namespace Bridge
{
    /// 
    /// 统计抽象类
    /// 
    abstract class StatisticsAbstraction
    {
        protected IStatisticsImp StatisticsImp { get; set; }
        public abstract void Operation();
    }
    /// 
    /// 统计和
    /// 
    class StatisticsSum : StatisticsAbstraction
    {
        public override void Operation()
        {
            StatisticsImp = new ComputeSumImp();
            StatisticsImp.OperationImp();
        }
    }
    /// 
    /// 统计均值
    /// 
    class StatisticsMean : StatisticsAbstraction
    {
        public override void Operation()
        {
            StatisticsImp = new ComputeMeanImp();
            StatisticsImp.OperationImp();
        }
    }
    /// 
    /// 实现接口
    /// 
    interface IStatisticsImp
    {
        void OperationImp();
    }
    /// 
    /// 实现求和
    /// 
    class ComputeSumImp : IStatisticsImp
    {
        public void OperationImp()
        {
            Console.WriteLine("求和");
        }

    }
    /// 
    /// 实现求均值
    /// 
    class ComputeMeanImp : IStatisticsImp
    {
        public void OperationImp()
        {
            Console.WriteLine("求均值");
        }
    }
}

调用:

using System;

namespace Bridge
{
    class Program
    {
        static void Main(string[] args)
        {
            //统计均值
            StatisticsAbstraction statisticsAbstraction = new StatisticsMean();
            statisticsAbstraction.Operation();
            //统计和
            statisticsAbstraction=new StatisticsSum();
            statisticsAbstraction.Operation();
        }
    }
}

结果:
C# 设计模式-桥接(Bridge)_第1张图片

参考资料:《设计模式-可复用面对对象软件的基础》

你可能感兴趣的:(C#-设计模式,设计模式,c#,桥接模式)