0

简单工厂模式:计算器类

 2 years ago
source link: https://blogread.cn/it/article/2030?f=hot1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
您现在的位置首页 --> PHP --> 简单工厂模式:计算器类

简单工厂模式:计算器类

浏览:1699次  出处信息

001 <?php

002 /*

003 名称 计算器类

004 作用 实现两个数字的“加减乘除”运算

005 备注 除不尽将保留到小数点后13位

006 用法 $oper = new operator(9,'/',7);

007 echo $oper->getResult();

008  

009 参数1 第一个数字

010 参数2 运算符号

011 参数3 第二个数字

012  

013 性能 在1秒内响应

014 输出 无

015 返回 运算结果

016  

017 简介 一个简单的工厂加工类。低耦合,融入了类的三大特性:封装、继承、多态。

018 第一个类作品,学习于《大话设计模式》第一章,原文用的是.net。

019  

020 版权 署名

021 日期 2010-6-2

022 版本 原始版本

023 作者 崔凯

024 联系 [email protected]

026  

027 */

028  

029 class operator{

030  

031 private $result;

032  

033 public function __construct($numberA,$operator,$numberB){

034  

035 switch($operator){

036  

037 case '+' :

038 $newOper = new operAdd($numberA,$numberB);

039 $this->result = $newOper->getResult();

040 break;

041  

042 case '-' :

043 $newOper = new operSub($numberA,$numberB);

044 $this->result = $newOper->getResult();

045 break;

046  

047 case '*' :

048 $newOper = new operMul($numberA,$numberB);

049 $this->result = $newOper->getResult();

050 break;

051  

052 case '/' :

053 $newOper = new operDiv($numberA,$numberB);

054 $this->result = $newOper->getResult();

055 break;

056  

057 }

058 }

059  

060 public function getResult(){

061 return $this->result;

062 }

063  

064 }

065  

066 class values{

067  

068 protected $numberA;

069 protected $numberB;

070  

071 public function __construct($numberA, $numberB){

072 $this->numberA = $numberA;

073 $this->numberB = $numberB;

074 }

075  

076 public function getResult(){

077 return 0;

078 }

079  

080 }

081  

082 class operAdd extends values{

083  

084 public function getResult(){

085 return $this->numberA + $this->numberB;

086 }

087  

088 }

089  

090 class operSub extends values{

091  

092 public function getResult(){

093 return $this->numberA - $this->numberB;

094 }

095  

096 }

097  

098 class operMul extends values{

099  

100 public function getResult(){

101 return $this->numberA * $this->numberB;

102 }

103  

104 }

105  

106 class operDiv extends values{

107  

108 public function getResult(){

109  

110 if( 0 != $this->numberB){

111 return $this->numberA / $this->numberB;

112 }

113 else{

114 return '除数不得为0';

115 }

116 }

117  

118 }

119 ?>

建议继续学习:

QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK