【简单的工厂模式】一个简单的计算器
对于一个对设计模式一无所知的程序员来说,维护成本,无疑是一个致命的问题,所以从今开始,我要开始努力学习,设计模式,在这里,记录自己的学习成果
生产类
- abstract class Oper 抽象类
- class Add 加
- class Sub 减
- class Mul 乘
- class Div 除
- class Operate 计算
abstract class Oper { public $num1 = 0; public $num2 = 0; abstract public function getResult(); }
class Add extends Oper { public function getResult(){ $result = $this->num1 +$this->num2; return $result; } }
。
。
。
class Div extends Oper { public function getResult(){ if($this->num2==0){ throw_exception('分母不能为零'); } $result = $this->num1 /$this->num2; return $result; } }
class Operate { public function oper($operate){ switch ($operate){ case '+': return new Add(); break; case '-': return new Sub(); break; case '*': return new Mul(); break; case '/': return new Div(); break; default: throw_exception('符号不支持'); break; } } }