package pany;//实现类(赵云)public class Zhaoyun {public static void main(String[] args) {Context context;System.out.println("拆第一個锦囊");context = new Context(new BackDoor());context.operate();System.out.println();System.out.println("拆第二個锦囊");context = new Context(new GivenGreenLight());context.operate();System.out.println();System.out.println("拆第三個锦囊");context = new Context(new BlockEnemy());context.operate();System.out.println();}}/*** 不知道具体的方法实现,只知道某接口可以实现方法。* 该方法体现了高内聚低耦合。* */
package pany;//錦囊类public class Context {private IStrategy iStrategy;//构造方法public Context(IStrategy Strategy){this.iStrategy = Strategy;}//使用计谋public void operate(){this.iStrategy.operate();}}
package pany;//计谋类public interface IStrategy {//计谋内容void operate();}
package pany;//找乔国老开后门public class BackDoor implements IStrategy{@Overridepublic void operate() {System.out.println("找乔国老开后门");}}
package pany;//找吴国太开绿灯public class GivenGreenLight implements IStrategy{@Overridepublic void operate() {System.out.println("找吴国太开绿灯");}}
package pany;// 孙夫人断后,挡住追兵public class BlockEnemy implements IStrategy{@Overridepublic void operate() {System.out.println("孙夫人断后,挡住追兵");}}