美文网首页
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