【PHP设计模式 08_CeLue.php】策略模式
<?php /*** 【策略模式】----和“简单工厂”模式很相似* 根据不同运算符计算两个数的运算结果* 常规方式就是判断运算符然后进行if...else的操作* 现在使用“策略模式”*/header("Content-type: text/html; charset=utf-8");if(isset($_POST['js']) && !empty($_POST['js'])){/*接口,和四个真实计算器*/interface Math{public function calc($op1,$op2);}class Jia implements Math{public function calc($op1, $op2){return $op1+$op2;}}class Jian implements Math{public function calc($op1, $op2){return $op1-$op2;}}class Cheng implements Math{public function calc($op1, $op2){return $op1*$op2;}}class Chu implements Math{public function calc($op1, $op2){return $op1/$op2;}}/*封装一个虚拟计算器*/class CMath{protected $jisuan = null;//$objType 对应的真实计算器的 Jia/Jian/Cheng/Chupublic function __construct($type){if($type==1){$objType = 'Jia';}elseif($type==2){$objType = 'Jian';}elseif($type==3){$objType = 'Cheng';}elseif($type==4){$objType = 'Chu';}else{exit('Error...');}$this->jisuan = new $objType();}public function jsq($num1,$num2){return $this->jisuan->calc($num1,$num2); }}/*开始调用*/$js = $_POST['js'];$cmath = new CMath($js);$res = $cmath->jsq($_POST['num1'], $_POST['num2']);echo $res;}?><form action="?" method="post"> <input type="text" name="num1"> <select name="js"><option value="1">+</option><option value="2">-</option><option value="3">*</option><option value="4">/</option> </select> <input type="text" name="num2"> <button type="submit">提交</button> </form>
转载于:https://www.cnblogs.com/rxbook/p/6002992.html
【PHP设计模式 08_CeLue.php】策略模式相关推荐
- 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...
- 设计模式入门(策略模式)
[0]README 0.1)本文部分文字描述转自 "head first 设计模式",旨在学习 设计模式入门(策略模式) 的基础知识: 0.2)本文章节4和5的source cod ...
- 设计模式 之美 -- 策略模式
策略模式作为行为型设计模式中的一种,主要封装相同功能的不同实现算法,用于在用户程序内部灵活切换.对用户来说能够快速替换对应的算法,能够让算法的实现独立于使用的用户. 基本的UML类图如下: 用户使用S ...
- Java设计模式之十一 ---- 策略模式和模板方法模式
前言 在上一篇中我们学习了行为型模式的访问者模式(Visitor Pattern)和中介者模式(Mediator Pattern).本篇则来学习下行为型模式的两个模式,策略模式(Strategy Pa ...
- 《研磨设计模式》chap17 策略模式(2) 总结
1. 新增加context 上下文类 eg. 发工资:发人民币和发美元 public interface PaymentStrategy {//公司给某人真正支付工资 public void pay( ...
- 设计模式のStrategyPattern(策略模式)----行为模式
一.问题产生背景 当我们进行一系列处理时(员工工资核算,会员管理,计算器,优惠活动),会有很多相似的算法和处理过程,只是由于具体的算法的差异,导致必须不同处理.这些处理和客户端无关,我们可以把这些算法 ...
- [设计模式] javascript 之 策略模式
策略模式说明 定义: 封装一系列的算法,使得他们之间可以相互替换,本模式使用算法独立于使用它的客户的变化. 说明:策略模式,是一种组织算法的模式,核心不在于算法,而在于组织一系列的算法,并且如何去使用 ...
- LOL设计模式之「策略模式」
之前写过一篇什么是「设计模式」?,没有类图,没有代码,有些同学说看不太懂,今天给大家带来策略模式(有图,有码,有真相!). 英雄联盟(LOL) 玩过LOL的同学都知道,LOL有上百个英雄,如果用OO技 ...
- 从王者荣耀看设计模式(一.策略模式)
从王者荣耀看设计模式(策略模式) 一:简介 游戏开始前,玩家需要选择英雄,再根据所选择的阵容自由选择召唤师技能,游戏开始,玩家可以控制英雄进行普通攻击和使用召唤师技能攻击 二:策略模式 策略模式将可变 ...
- 《设计模式》之策略模式
一.什么是策略模式? 比如对象的某个行为,在不同场景有不同实现方式,可以将这些行为的具体实现定义为一组策略,每个实现类实现种策略,在不同场景使用不同的实现,并且可以自由切换策略. 1.1.策略模式结构 ...
最新文章
- 被强制007加班!他愤而把加班证据发给国外供应商和大客户!客户纷纷取消订单!他去度假,老板气疯!...
- 自动驾驶中基于车道线的高清制图方法回顾
- vivado----fpga硬件调试 (五) ----找不到ila核问题及解决
- bzoj2720 [Violet 5]列队春游
- Pixhawk代码分析-姿态解算篇D
- 【C++11新特性】 - 空间配置allocator类
- LeetCode——动态规划:斐波那契数列
- 69. Sqrt(x)010(二分法求解+详解注释)
- Vue笔记-Ant Design Vue的使用(Vue3)
- 基于SSH框架社区智能化管理系统答辩PPT模板
- tp5自定义一个函数php,tp5 如何模块自定义函数!
- java 输入输出 函数对象构造
- Android开发项目计划书
- 什么是人工智能?(科普)
- 总结一下强大的ES6符号
- java for循环迭代_Java for循环棘手迭代
- 用python画皮卡丘的代码-用python画一只可爱的皮卡丘
- 如何写一份让 HR 眼前一亮的简历(附模板)
- gps有几个轨道面_GPS(全球定位系统)的 24 颗卫星的轨道是如何设计的?
- Vrep/CoppeliaSim:安装及相关资料
热门文章
- python过拟合_梯度下降、过拟合和归一化
- 四川大学锦城学院计算机考试题,四川大学锦城学院期考试试题(B卷)_15889.doc
- oracle undo seg,正确切换undo
- 卷积滤波 英文_图像处理必备英文词汇
- PL/SQL Developer 12.0下载及汉化
- orcale建表,创建字段id使其自增
- 遇劣势变蠢、发语音嘲讽人类……OpenAI这些奇葩DOTA操作跟谁学的?
- 如今,进北大要看脸了
- 腾讯超级大脑发布!马化腾要用三张智能网络,打造AI in All通用操作系统
- 理解 Redux 的最好方式,是自己写一个