策略模式

canca canca
2007-03-26 15:01
1
0

//策略模式
//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();
 }
}

发表评论