设计模式学习笔记2-----策略模式
策略模式:它定义了算法家族,分别封装起来,让她们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
以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();
}

浙公网安备 33010602011771号