首页 > 代码库 > 策略模式的详情
策略模式的详情
在很多的计算场合,我需要在不同的时间、地方,用不同的算法计算数据;那么就引入了我们的今天要讲的策略设计模式;什么是策略设计模式?就是定义了算法的家族,分别封装起来,让他们之前可以相互的进行替换,此模式让算法的变化,不影响使用算法的客户端;
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的具体实现"); } }
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(); //其他的代码类似 }咱们在实际的项目开发中,我们可以用把简单工厂模式和这个模式结合,把客户端判断的逻辑移动到工厂类中;减少客户端知道的类,后续在运维的时候,更加方便。
策略模式的详情
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。