美文网首页
设计模式之策略模式

设计模式之策略模式

作者: smallstrong | 来源:发表于2017-04-27 16:13 被阅读7次

    策略模式

    策略模式UML.png
    interface Hero{
        void kaida();
    }
    

    英雄接口,开大。

    class SunWuKong implements Hero{
        public void kaida(){
            //孙悟空开大
        }
    }   
    

    英雄孙悟空,实现开大方法

    class DianWei implements Hero{
        public void kaida(){
            //典韦跳大
        }
    }
    

    英雄典韦,实现开大方法

    class Military{
        private Hero hero;
        public Military(Hero hero){
            this.hero = hero;
        }
        
        public void kaida(){
            if(hero != null){
                hero.kaida();               
            }
        }
    }
    

    军师类,军师职责是挑选合适的英雄去开大,就是这样

    class Client{
        Hero hero = new SunWuKong();
        Military mMilitary = new Military(hero);
        mMilitary.kaida();
    }
    

    客户端,这边选择的是孙悟空去开大,根据不同需求在运行时指定不同英雄,交给军师,让其开大

    个人总结

    策略模式给我感觉是一种,想做一件事情,这事情有很多种解决途径,有对的有错的,这些途径就是策略类(例子中的孙悟空,典韦),关键难点在于客户端如何抉择,这个是一个难点。

    相关文章

      网友评论

          本文标题:设计模式之策略模式

          本文链接:https://www.haomeiwen.com/subject/zwqnzttx.html