您的位置:首页 > 编程语言 > C#

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

2017-12-28 20:36 531 查看
将抽象部分和实现部分分离,使它们可以独立变化

主要组成:

Abstraction(抽象类)

RefinedAbstraction(抽象类的子类)

Implementor(实现接口)

ConcreteImplementor(具体实现类)

适配器和桥接的区别:

适配器:用来帮助无关的类协同工作,通常在系统设计完成后才使用。

桥接:在系统开始时就使用,使抽象部分和实现部分分离。

抽象和实现:

using System;

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

}
/// <summary>
/// 实现求均值
/// </summary>
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();
}
}
}


结果:



参考资料:《设计模式-可复用面对对象软件的基础》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息