策略模式
//策略模式
//CopyRight(C) CAnca software Office.2006
//Created by CAnca.
public class StrategyMode{
public static void main(String[] args){
// Three contexts following different strategies
Context context = new Context(new ConcreteStrategyA());
context.ContextInterface();
context = new Context(new ConcreteStrategyB());
context.ContextInterface();
context = new Context(new ConcreteStrategyC());
context.ContextInterface();
}
}
//Strategy
abstract class Strategy{
abstract void AlgorithmInterface();
}
class ConcreteStrategyA extends Strategy{
public void AlgorithmInterface(){
System.out.println("ConcreteStrategyA.AlgorithmInterface()");
}
}
class ConcreteStrategyB extends Strategy{
public void AlgorithmInterface(){
System.out.println("ConcreteStrategyB.AlgorithmInterface()");
}
}
class ConcreteStrategyC extends Strategy{
public void AlgorithmInterface(){
System.out.println("ConcreteStrategyC.AlgorithmInterface()");
}
}
//Context
class Context{
private Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public void ContextInterface(){
this.strategy.AlgorithmInterface();
}
}