package strategy; interface Strategy{ int execute(int a,int b); } class StrategyAdd implements Strategy{ public int execute(int a, int b) { return a+b; } } class StrategyMinus implements Strategy{ public int execute(int a, int b) { return a-b; } } class StrategyMultiply implements Strategy{ public int execute(int a, int b) { return a*b; } } class Context{ private Strategy strategy; public Context(Strategy s){ this.strategy=s; } public int execute(int a,int b){ return this.strategy.execute(a, b); } } //参考:http://en.wikipedia.org/wiki/Strategy_pattern public class StrategyApp { /** * @param args */ public static void main(String[] args) { System.out.println((new Context(new StrategyAdd())).execute(1, 2)); System.out.println((new Context(new StrategyMinus())).execute(1, 2)); System.out.println((new Context(new StrategyMultiply())).execute(1, 2)); } } 参考:http://en.wikipedia.org/wiki/Strategy_pattern