美文网首页
PHP设计模式-策略

PHP设计模式-策略

作者: 木有sky | 来源:发表于2019-02-17 10:09 被阅读0次

适用性

策略依照使用而定

代码示例

/**

* 观察者接口

*/

interface StrategyInterface

{

    /**

    * 行为

    * @return void

    */

    public function doSomething();

}

/**

* 观察者实体类示例1

*/

class StrategyExampleOne implements StrategyInterface

{

    /**

    * 行为

    * @return mixed

    */

    public function doSomething()

    {

        echo "你选择了策略1 \n";

    }

}

/**

* 观察者实体类示例2

*/

class StrategyExampleTwo implements StrategyInterface

{

    /**

    * 行为

    * @return mixed

    */

    public function doSomething()

    {

        echo "你选择了策略2 \n";

    }

}

/**

* 实体类

*

* 依赖外部不同策略的实体类

*/

class Substance

{

    /**

    * 策略实例

    * @var object

    */

    private $_strategy;

    /**

    * 构造函数

    * 初始化策略

    *

    * @param Strategy $strategy 策略实例

    */

    public function __construct(StrategyInterface $strategy)

    {

        $this->_strategy = $strategy;

    }

    /**

    * 模拟一个操作

    *

    * @return mixed

    */

    public function someOperation()

    {

        $this->_strategy->doSomething();

    }

}

// 使用策略1

$substanceOne = new Substance(new StrategyExampleOne);

$substanceOne->someOperation();

// 使用策略2

$substanceTwo = new Substance(new StrategyExampleTwo);

$substanceTwo->someOperation();

相关文章

网友评论

      本文标题:PHP设计模式-策略

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