直接上代码,不会讲一些理论性的东西,下面的策略主要为了讲解一些项目中经常遇到的 if…else if…else if …的判断
来源于一个故事
刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开解决棘手问题,
嘿,还别说,真是解决了大问题,搞到最后是周瑜陪了夫人又折兵呀,那咱们先看看这个场景是什么样子
的。
先说这个场景中的要素:三个妙计,一个锦囊,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊
里,俗称就是锦囊妙计嘛,那赵云就是一个干活的人,从锦囊中取出妙计,执行,然后获胜,用 JAVA 程序
怎么表现这个呢?我们先看类图:
定义一个接口
public interface IStrategy {
//每个锦囊妙计都有一个可执行的算法
public void operate();
}
//开后门
public class BackDoor implements IStrategy {
@Override
public void operate() {
System.out.println("找乔国老帮忙,让吴国太给孙权施加压力");
}
}
//阻击追兵
public class BlockEnemy implements IStrategy{
@Override
public void operate() {
System.out.println("孙夫人断后,挡住追兵");
}
}
//开绿灯
public class GivenGreenLight implements IStrategy{
@Override
public void operate() {
System.out.println("求吴国太开个绿灯,放行!");
}
}
public class Context {
private static IStrategy[] straegys = new IStrategy[3];
static {
straegys[0] = new BackDoor();
straegys[1] = new BlockEnemy();
straegys[2] = new GivenGreenLight();
}
public static void openStrategy(int pos){
if(pos >= straegys.length)return;
straegys[pos].operate();
}
}
public class ZhaoYun {
public static void main(String[] args) {
Context.openStrategy(0);
Context.openStrategy(1);
Context.openStrategy(2);
Context.openStrategy(3);
}
}