zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    第二章——链表
    第一章:基本概念
    第八章
    画图
    关于写代码时的心态问题
    checked用id选择器找不到怎么办
    this指向问题
    es6箭头函数
    微信小程序——获取步数
    小程序——数据缓存
  • 原文地址:https://www.cnblogs.com/taozi32/p/9226796.html
Copyright © 2011-2022 走看看