您的位置:首页 > 其它

设计模式学习笔记2-----策略模式

2014-05-21 15:41 387 查看
策略模式:它定义了算法家族,分别封装起来,让她们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

以c#代码为例:

//strategy类

//抽象算法类

abstract class Strategy

  {

    public avstract void AlgorithmInterface();

  }

//ConcreteStragegy,封装了具体的算法或行为,继承于Strategy;

class ConcreteStrategyA:Strategy

{

//算法A实现方法

public override void AlgorithmInterface();

{

Console.WriteLine("算法A实现")

}

class ConcreteStrategyB:Strategy

{

//算法B实现方法

public override void AlgorithmInterface();

{

Console.WriteLine("算法B实现")

}

class ConcreteStrategyC:Strategy

{

//算法C实现方法

public override void AlgorithmInterface();

{

Console.WriteLine("算法C实现")

}

}

//Context ,用一个ConcreteStategy来配置,维护一个队Strategy对象的引用

class Contxt

{

Strategy strategy;

public Context(Strategy strategy)

{

this.strategy = strategy;

}

public void ContextInterface()

{

strategy.AlgoritehmInterface();

}

}

//客户端代码

static void Main(string[] args)

{

Context context;

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

context = new Context(new ConcreteStratehyB())

context.ContextInterface();

context = new Context(new ConcreteStratehyC())

context.ContextInterface();

context = new Context(new ConcreteStratehyA())

context.ContextInterface();

Console.Read();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: