策略模式:以三国诸葛亮的 三个锦囊的例子来更好的解释:
/*
锦囊妙计
诸葛亮给赵云三个锦囊,里面有三条妙计
1.孙权要杀刘备 找乔国老帮忙。让吴国泰给孙权施加压力
2.让吴国泰帮助,开绿灯放他们走
3.找孙夫人断后,拦截追兵
分析: 1.有三条妙计 可以向上抽取成妙计
2.需要锦囊 其中装的是妙计,是那个妙计不知道
3.当打开锦囊要执行妙计时,需要的是真正的妙计,而不是我们定义的接口。
*/
//Demo4想像成赵云
class Demo4
{
public static void main(String[] args)
{
//遇到第一个问题
//MiaoJi m1=new MiaoJi_1();
//妙计是放在锦囊中的
JinNang jn=new JinNang();
System.out.println("刚到吴国");
jn.content(new MiaoJi_1());
System.out.println("谈判过程中");
jn.content(new MiaoJi_2());
System.out.println("离开时");
jn.content(new MiaoJi_3());
}
}
interface MiaoJi
{
//妙计执行
void operation();
}
class MiaoJi_1 implements MiaoJi
{
public void operation(){
System.out.println("孙权要杀刘备 找乔国老帮忙。让吴国泰给孙权施加压力");
}
}
class MiaoJi_2 implements MiaoJi
{
public void operation(){
System.out.println("让吴国泰帮助,开绿灯放他们走");
}
}
class MiaoJi_3 implements MiaoJi
{
public void operation(){
System.out.println("找孙夫人断后,拦截追兵");
}
}
//锦囊 里面装着妙计
class JinNang{
//MiaoJI mj=new MiaoJi_3();
public void content(MiaoJi mj){//定义的是接口类型
//打开锦囊执行妙计
mj.operation(); //调用方法时执行的还是实现类中的方法
}
} |