http://www.verejava.com/?id=16999166513476
package com.strategy.theory;
public class TestStrategy
{
public static void main(String[] args)
{
Context ctx=new Context(new StrategyImplA());
ctx.doMethod();
ctx=new Context(new StrategyImplB());
ctx.doMethod();
ctx=new Context(new StrategyImplC());
ctx.doMethod();
}
}
package com.strategy.theory;
public class Context
{
private Strategy strategy;
public Context(Strategy strategy)
{
this.strategy=strategy;
}
public void doMethod()
{
strategy.method();
}
}
package com.strategy.theory;
public abstract class Strategy
{
public abstract void method();
}
package com.strategy.theory;
public class StrategyImplA extends Strategy
{
@Override
public void method()
{
System.out.println("方法实现 A");
}
}
package com.strategy.theory;
public class StrategyImplB extends Strategy
{
@Override
public void method()
{
System.out.println("方法实现 B");
}
}
package com.strategy.theory;
public class StrategyImplC extends Strategy
{
@Override
public void method()
{
System.out.println("方法实现 C");
}
}

本文通过一个实战案例介绍了策略模式的应用。该案例定义了一系列的算法或行为,并将每个算法封装成一个独立的类,使得它们可以相互替换。这样客户端可以根据需要动态地选择一种算法。

被折叠的 条评论
为什么被折叠?



