Strategy -- 策略模式
public interface Strategy {public void operation();}/** * 三条妙计 */class BackDoor implements Strategy {@Overridepublic void operation() {System.out.println("找乔国老帮忙");}}class GivenGreenLight implements Strategy {@Overridepublic void operation() {System.out.println("求吴国太开个绿灯");}}class BlockEnemy implements Strategy {@Overridepublic void operation() {System.out.println("孙夫人断后");}}/** * 锦囊盛放妙计 */class Context implements Strategy{private Strategy mStrategy;public Context(Strategy s){mStrategy = s;}@Overridepublic 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("");