妙计接口
//妙计接口
public interface IStrategy {
//每个锦囊妙计都是一个可执行的算法
void operate();
}
//妙计:找乔国老开后门
public class BackDoor implements IStrategy {
@Overrite
public void operate() {
System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
//妙计:吴国太开绿灯
public class BackDoor implements IStrategy {
@Overrite
public void operate() {
System.out.println("求吴国太开绿灯,放行");
}
}
//妙计:孙夫人断后
public class BackDoor implements IStrategy {
@Overrite
public void operate() {
System.out.println("孙夫人断后,挡住追兵");
}
}
Context封装类(也就是锦囊类),其作用是承装三个策略,方便赵云使用。
public class Context {
//构造函数,你要使用哪个妙计
private IStrategy stratehy;
public Context(IStrategy stratehy) {
this.stratehy = stratehy;
}
//使用谋计了,看我出招了
public void operate() {
this.stratehy.operate();
}
}
妙计执行者类
//妙计执行者赵云
public class ZhaoYun {
public static void main(String[] arg) {
Context context;
context = new Context(new BackDoor());
context.operate();
context = new Context(new GivenGreenLight());
context.operate();
context = new Context(new BlockEnemy());
context.operate();
}
}