博客列表 >PHP设计模式学习笔记——策略模式

PHP设计模式学习笔记——策略模式

青Blue的博客
青Blue的博客原创
2020年07月01日 22:34:10568浏览

实例

<?php
/**
* @Description: 策略模式
* @Author: luoxiaojin
* @Date: 2020-06-29 16:57:41
* @LastEditors: luoxiaojin
* @LastEditTime: 2020-06-29 21:24:18
* @FilePath: \design_patterns\l7.php
*/

// 通用计算机
interface Complute{
    public function calc($op1,$op2);
}

class CompluteAdd implements Complute{
    public function calc($op1,$op2){
        return $op1 + $op2;
    }
}

class CompluteDiv implements Complute{
    public function calc($op1,$op2){
        return $op1 / $op2;
    }
}

class CompluteMult implements Complute{
    public function calc($op1,$op2){
        return $op1 * $op2;
    }
}

class CompluteDrop implements Complute{
    public function calc($op1,$op2){
        return $op1 - $op2;
    }
}

// 封装一个虚拟计算器,聚合多个真实计算器,和工厂模式的区别是:不触碰产生的对象,而是作为一个部件聚合到虚拟类中
class VComplute{
    protected $js = null;

    public function __construct($type){
        $type = 'Complute'.$type;
        $this->js = new $type();
    }

    public function calc($op1,$op2){
        return $this->js->calc($op1,$op2);
    }
}

$vc = new VComplute('Mult');
echo $vc->calc(1,5);

运行实例 »

点击 "运行实例" 按钮查看在线实例

——学习参考与 bilibili燕十八 面向对象与设计模式

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议