package com.company; //实现类(赵云) 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 com.company; //錦囊类 public class Context { private IStrategy iStrategy; //构造方法 public Context(IStrategy Strategy){ this.iStrategy = Strategy; } //使用计谋 public void operate(){ this.iStrategy.operate(); } }
package com.company; //计谋类 public interface IStrategy { //计谋内容 void operate(); }
package com.company; //找乔国老开后门 public class BackDoor implements IStrategy{ @Override public void operate() { System.out.println("找乔国老开后门"); } }
package com.company; //找吴国太开绿灯 public class GivenGreenLight implements IStrategy{ @Override public void operate() { System.out.println("找吴国太开绿灯"); } }
package com.company; // 孙夫人断后,挡住追兵 public class BlockEnemy implements IStrategy{ @Override public void operate() { System.out.println("孙夫人断后,挡住追兵"); } }