黑马程序员技术交流社区

标题: 设计模式之策略模式() [打印本页]

作者: 黑马-王燚    时间: 2012-10-6 08:51
标题: 设计模式之策略模式()
策略模式:以三国诸葛亮的 三个锦囊的例子来更好的解释:
/*
        锦囊妙计
       
        诸葛亮给赵云三个锦囊,里面有三条妙计
        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(); //调用方法时执行的还是实现类中的方法

        }
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2