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

设计模式||策略模式

作者: hdormy | 来源:发表于2022-01-11 08:17 被阅读0次

    “我想去桂林找我的亲亲师父!”

    第一步该干什么呢?

    “买票!”

    “错!你该思考出行方式!”

    这里的“出行方式”其实是一个抽象的概念,而把它具体化就是:火车、飞机、自驾、骑行以及徒步等等。

    “啊!好难选啊,那来抽签决定吧!”

    出行方式,各就各位,预备,起!


    //统一出行方式各签的颜色

    interface Strategy {

    pulic function methodColor();

    }


    再把每个出行方式具体化:

    class Train implements Strategy //接口继承前,别忘记引入接口类哟

    {

    public function methodColor(){

    echo "坐火车";

    }

    }

    class Plain implements Strategy //接口继承前,别忘记引入接口类哟

    {

    public function methodColor(){

    echo "乘飞机";

    }

    }

    (其他几个以此类推)


    现在,我们把每个签装进盒子里。


    class KK

    {

    protected $strategy;

    public function index (){

    $this->strategy->methodColor(); //根据抽到的出行方式,调用统一的方法

    }

    public function setStrategy($strategy){

    $this->strategy=$strategy; //根据抽到的出行方式,设置出行方式

    }

    }


    接下来,重头戏来啦!抽签开始!


    //客户端,我就不封类了哈

    $qian = "Plain"; //哇,抽中飞机啦

    $strategy = new $qian;//php就是这么任性,变量也能直接实例化

    $kk = new KK();//我终于进化成人了

    $kk->setStrategy($qian);//开奖啦!啦啦啦~

    $kk->index();//奖励兑换完毕

    作者注:策略模式只偶尔用了两次,写的不好的,还望大神不吝指点,拜谢。

    相关文章

      网友评论

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

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