当前位置:首页 > Web开发 > 正文

PHP设计模式

2024-03-31 Web开发

计谋模式就是用来封装算法的,但在实践中,我们发明可以用它来封装几乎任何类型的法则,只要在分析过程中听到需要在差别时间应用差此外业务法则,就可以考虑使用计谋模式措置惩罚惩罚这种变革的可能性。

 超市促销勾当,分袂有原价,,八折,满300减50,使用计谋模式……,措施如何设计。

       

 

    流程图如下:

      

          

技术图片

 

1. 抽象勾当算法类

<?php /** * 抽象勾当算法类 */ namespace strategy; abstract class StrategyAbstract { /** * 具体勾当算法要领 * @return mixed */ public abstract function doAction($money); }

2. 具体算法产品类

<?php /** * 满减算法产品类 */ namespace strategy; class ManJianStrategy extends StrategyAbstract { public function doAction($money) { echo 满减算法:原价. $money .; } }

<?php /** * 打折算法产品类 */ namespace strategy; class DaZheStrategy extends StrategyAbstract { /** * 具体算法实现 * @param $money * @return mixed|void */ public function doAction($money) { echo 打折算法:原价. $money .; } }

3. 计谋工厂类

<?php /** * 计谋工厂类 */ namespace strategy; class StrategyFind { private $strategy_mode; /** * 初始时,传入具体的计谋东西 * @param $mode */ public function __construct($mode) { $this->strategy_mode = $mode; } /** * 执行打折算法 * @param $money */ public function get($money) { $this->strategy_mode->doAction($money); } }

入口文件

<?php namespace strategy; include ../autoload.php; // 满减折算 $mode1 = new StrategyFind(new ManJianStrategy()); $mode1->get(100); echo <br>; // 满减勾当 $mode2= new StrategyFind(new DaZheStrategy()); $mode2->get(100);

原文:https://www.cnblogs.com/houdabao/p/9546871.html

PHP设计模式-计谋模式

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30168.html