博客
关于我
php--class的工厂模式的示例
阅读量:290 次
发布时间:2019-03-03

本文共 2090 字,大约阅读时间需要 6 分钟。

getMessage(); } }}//类的实例化$test = new calc();echo '+ ='.$test->calculate(100,99,'+');echo "
";echo '- ='.$test->calculate(100,99,'-');echo "
";echo '* ='.$test->calculate(100,99,'*');echo "
";echo '/ ='.$test->calculate(100,99,'/');echo "
";echo '/ ='.$test->calculate(100,0,'/');echo "
";echo '% ='.$test->calculate(100,99,'%');echo "
";

工厂模式:

echo "

";//接口interface calc1{ public function getValue($num1,$num2);}//加法,继承接口并实现class math_add implements calc1{ public function getValue($num1, $num2) { return $num1 + $num2; }}//减法class math_sub implements calc1{ public function getValue($num1, $num2) { return $num1 - $num2; }}//乘法class math_mul implements calc1{ public function getValue($num1, $num2) { return $num1 * $num2; }}//除法class math_div implements calc1{ public function getValue($num1, $num2) { try { if($num2 == 0) { throw new Exception('chu shu bu meng wei 0'); } else { return $num1 / $num2; } } catch (Exception $e) { echo "wrong :".$e->getMessage(); } }}//工厂类,静态方法创建对象class factory1{ public static function createObject($operator) { switch ($operator) { case '+': return new math_add(); break; case '-': return new math_sub(); break; case '*': return new math_mul(); break; case '/': return new math_div(); break; } }}//创建加法类实例$fac1 = factory1::createObject('+');echo '+ ='.$fac1->getValue(100,99);echo "
";//创建减法类实例$fac2 = factory1::createObject('-');echo '- ='.$fac2->getValue(100,99);echo "
";//创建乘法类实例$fac3 = factory1::createObject('*');echo '* ='.$fac3->getValue(100,99);echo "
";//创建除法类实例$fac4 = factory1::createObject('/');echo '/ ='.$fac4->getValue(100,99);echo "
";//除数为0$fac5 = factory1::createObject('/');echo '+ ='.$fac5->getValue(100,0);echo "
";

 

转载地址:http://ypem.baihongyu.com/

你可能感兴趣的文章
2021年N1叉车司机考试题及N1叉车司机复审模拟考试
查看>>
2021年危险化学品经营单位主要负责人考试APP及危险化学品经营单位主要负责人多少钱
查看>>
2021年T电梯修理考试技巧及T电梯修理模拟考试软件
查看>>
2021年R2移动式压力容器充装考试题及R2移动式压力容器充装找答案
查看>>
2021年电工(初级)考试及电工(初级)证考试
查看>>
2021年安全员-B证-项目负责人(广东省)新版试题及安全员-B证-项目负责人(广东省)考试试卷
查看>>
2021年安全员-B证(山东省)考试APP及安全员-B证(山东省)考试技巧
查看>>
2021年安全员-A证-主要负责人(广东省)复审考试及安全员-A证-主要负责人(广东省)操作证考试
查看>>
2021年安全员-A证(山东省)考试题及安全员-A证(山东省)报名考试
查看>>
2021年G1工业锅炉司炉考试报名及G1工业锅炉司炉模拟考试题库
查看>>
大数据学习之Spark——00Spark项目的pom.xml文件
查看>>
大数据学习之Spark——01Spark概述
查看>>
比特币史话·78 | 有容乃大(2): 零食售卖机
查看>>
比特币史话·96 | 隐私(3): 熔币重铸
查看>>
Fire prejudice: 巴菲特搭档芒格首度认可比特币
查看>>
从 MFC 移植程序到 wxWidgets 界面库 ——《定时执行专家 5.0》的界面实现
查看>>
GLUT和wxWidgets在OpenGL开发中的比较
查看>>
CodeBlocks开发wxWidgets环境配置详细
查看>>
Qt 转向 LGPL之后,wxWidgets 路在何方
查看>>
[翻译]2009年6月wxWidgets更新 - 支持图标的wxButton
查看>>