• PHP设计模式


    策略模式主要为了让客户类能够更好地使用某些算法而不需要知道其具体的实现。

    <?php
    interface Strategy { // 抽象策略角色,以接口实现
        public function do_method(); // 算法接口
    }
    
    class ConcreteStrategyA implements Strategy { // 具体策略角色A 
        public function do_method() {
            echo 'do method A';
        }
    }
    
    class ConcreteStrategyB implements Strategy { // 具体策略角色B 
        public function do_method() {
            echo 'do method B';
        }
    }
    
    class ConcreteStrategyC implements Strategy { // 具体策略角色C
        public function do_method() {
            echo 'do method C';
        }
    }
    
    
    class Question{ // 环境角色
        private $_strategy;
    
        public function __construct(Strategy $strategy) {
            $this->_strategy = $strategy;
        } 
        public function handle_question() {
            $this->_strategy->do_method();
        }
    }
    
    // client
    $strategyA = new ConcreteStrategyA();
    $question = new Question($strategyA);
    $question->handle_question();//输出do method A
    
    $strategyB = new ConcreteStrategyB();
    $question = new Question($strategyB);
    $question->handle_question();//输出do method B
    
    $strategyC = new ConcreteStrategyC();
    $question = new Question($strategyC);
    $question->handle_question();//输出do method C
    
  • 相关阅读:
    所有时间测试函数
    时间函数应用 time
    50个c/c++源代码网站
    ASN.1详解
    SNMP协议
    SNMP协议详解
    大数据需要建立规则和标准
    常用的三层架构设计
    构建大型网站架构十步骤
    iOS 应用程序内部国际化,不跟随系统语言
  • 原文地址:https://www.cnblogs.com/taozi32/p/9226796.html
Copyright © 2020-2023  润新知