策略模式的详情

       在很多的计算场合,我需要在不同的时间、地方,用不同的算法计算数据;那么就引入了我们的今天要讲的策略设计模式;什么是策略设计模式?就是定义了算法的家族,分别封装起来,让他们之前可以相互的进行替换,此模式让算法的变化,不影响使用算法的客户端;


       Strategy代码如下:

abstract class Strategy
{
     //算法方法
public abstract void AlgorithmInterface();
}
     ConcreteStrategy是对Strategy类的继承并实现了具体的算法, ConcreteStrategyA类代码(其他的类代码相似)如下

	<pre name="code" class="csharp">public class ConcreteStrategyA:Strategy
{
  public override void AlgorithmInterface()
  {
	Console.WriteLine("算法A的具体实现");
  }
}


        Context类的具体代码: 

public class Context
{
  Strategy strategy;
  //初始化具体的策略对象
  public Context(Strategy strategy)
  {
	this.strategy=strategy;
  }
  //根据具体的策略对象调用其算法的方法
  public void ContextInterface()
  {
	strategy.AlgorithmInterface();
  }
  
}
     客户端代码:
static void main(string[] arg)
{
	Context context;
	context=new Context(new ConcreteStrategyA());
	context.ContextInterface();
	//其他的代码类似
}
    咱们在实际的项目开发中,我们可以用把简单工厂模式和这个模式结合,把客户端判断的逻辑移动到工厂类中;减少客户端知道的类,后续在运维的时候,更加方便。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值