设计模式||策略模式

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

第一步该干什么呢?

“买票!”

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

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

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

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


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

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();//奖励兑换完毕

作者注:策略模式只偶尔用了两次,写的不好的,还望大神不吝指点,拜谢。
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1月读书感悟 随着期待的心情一月要读的书来到我身边,满怀期待的看了起来。 小册子是一系列高效行动派使用的工具,首页...
    3c5c1e228adb阅读 271评论 0赞 1
  • 现在只要是个像样的城市,都基本具有特大城市一样的特点,都是堵城。 以前去东北,传言说东北地广人稀,觉得哈尔滨指定不...
    5斗米阅读 249评论 1赞 2
  • 2022年1月11日 星期二 凌晨:0:48 今天中午起床后,一呼吸,肋骨后面便隐隐作痛,就知道是因为自己这两天熬...
    陈阿君阅读 216评论 0赞 1
  • 不要让别人的看法,成为自己的障碍 有这样一个故事:父子俩骑着毛驴在路上走,有路人说:“这么小的毛驴驮着两个人,会不...
    玲溪279阅读 190评论 0赞 0
  • 第一章由内而外全面造就自己 1.每个人的思维方式是都是根深蒂固,仅仅研究世界是不够的,要研究我们看世界时所带的“透...
    肖申克的救赎阅读 382评论 0赞 0

友情链接更多精彩内容