A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王燚 中级黑马   /  2012-10-6 08:51  /  1211 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

策略模式:以三国诸葛亮的 三个锦囊的例子来更好的解释:
/*
        锦囊妙计
       
        诸葛亮给赵云三个锦囊,里面有三条妙计
        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(); //调用方法时执行的还是实现类中的方法

        }
}

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马