public interface Strategy { public void operation(); } /** * 三条妙计 */ class BackDoor implements Strategy { @Override public void operation() { System.out.println("找乔国老帮忙"); } } class GivenGreenLight implements Strategy { @Override public void operation() { System.out.println("求吴国太开个绿灯"); } } class BlockEnemy implements Strategy { @Override public void operation() { System.out.println("孙夫人断后"); } } /** * 锦囊盛放妙计 */ class Context implements Strategy{ private Strategy mStrategy; public Context(Strategy s){ mStrategy = s; } @Override public void operation() { mStrategy.operation(); } }
/** * 1.策略模式 */ System.out.println("***********1.策略模式***********"); //生成第一个锦囊 Context context = new Context(new BackDoor()); System.out.println("使用第 1 条妙计:"); context.operation(); //生成第二个锦囊 context = new Context(new GivenGreenLight()); System.out.println("使用第 2 条妙计:"); context.operation(); //生成第三个锦囊 context = new Context(new BlockEnemy()); System.out.println("使用第 3 条妙计:"); context.operation(); System.out.println("");