设计模式【2】:策略模式

来源:互联网 发布:空之境界 知乎 编辑:程序博客网 时间:2024/05/29 15:11

策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
说白了策略模式要处理的是选择使用哪一种算法,而不是实例化一个对象。

策略模式的基本代码
Strategy类,定义所有支持的算法和公共接口

abstract class Strategy{    //算法方法    public abstract void AlgorithmInterface();{

ConcreteStrategy类,封装了具体的行为或算法,继承Strategy

class ConcreteStrategyA:Stratrgy{    public override AlgorithmInterface()    {        Console.WriteLine("算法A实现");    }}class ConcreteStrategyB:Stratrgy{    public override AlgorithmInterface()    {        Console.WriteLine("算法B实现");    }}class ConcreteStrategyC:Stratrgy{    public override AlgorithmInterface()    {        Console.WriteLine("算法C实现");    }}

Context,用一个ConcreteStrategy配置,维护对一个Strategy对象引用

class Context{    Strategy stratgy;    public Context(Strategy strategy)    {        this.Strategy = strategy;    }    public void ContextInterface()    {        strategy.AlgotithmInterface();    }

调用

static void Main(String[] args){    Context context;    context = new Context(new ConcreteStrategyA());    context.ContextInterface();}

由于实例化不同的策略,最终在调用context.ContextInterface()时,所得到的结果就不尽相同

0 0
原创粉丝点击