zoukankan      html  css  js  c++  java
  • 【php设计模式】策略模式

      策略模式是针对一组算法,将每一种算法都封装到具有共同接口的独立的类中,从而是它们可以相互替换。策略模式的最大特点是使得算法可以在不影响客户端的情况下发生变化,从而改变不同的功能。

    <?php
    interface Stratege{
        public function doOperation($int1,$int2);
    }
    
    class OperationAdd implements Stratege{
        public function doOperation($int1,$int2){
            return $int1 + $int2;
        }
    }
    
    class OperationSub implements Stratege{
        public function doOperation($int1,$int2){
            return $int1 - $int2;
        }
    }
    
    class Context{
        public $stratege;
        public function __construct(Stratege $stra){
            $this->stratege = $stra;
        }
        public function executeStrategy($int1,$int2){
            echo $this->stratege->doOperation($int1,$int2)."
    ";
        }
    }
    
    
    $add = new OperationAdd();
    $context_add = new Context($add);
    $context_add->executeStrategy(5,3); //输出8
    
    $sub = new OperationSub();
    $context_sub = new Context($sub);
    $context_sub->executeStrategy(5,3); //输出2
  • 相关阅读:
    python web 2
    python web1(解析url)
    webstrom 今天突然要激活
    数组排序 记录一下
    浏览器添加随机数去除缓存
    vue-cli 安装报错
    vue 初始化项目报错
    深拷贝和浅拷贝
    css3 属性 clip-path
    js数组去重
  • 原文地址:https://www.cnblogs.com/itsuibi/p/11057409.html
Copyright © 2011-2022 走看看