工厂模式

<?php
//运算符抽象类
abstract class Operation{
    private $num1=0;
    private $num2=0;
    public function __get($name){
        if(isset($this->$name)){
            return $this->$name;
        }
        return null;
    }
    public function __set($name,$value){
        $this->$name=$value;
    }
    abstract function getResult();
}

//加法
class Add extends Operation{
    public function getResult(){
        return $this->num1+$this->num2;
    }
}

//减法
class Sub extends Operation{
    public function getResult(){
        return $this->num1-$this->num2;
    }
}

//乘法
class Mul extends Operation{
    public function getResult(){
        return $thi->num1*$this->num2;
    }
}

//除法
class Div extends Operation{
    public function getResult(){
        if($this->num2==0){
            echo "除数不能为零";
            return false;
        }
        return $this->num1/$this->num2;
    }
}

//运算符操作工厂,来决定初始化哪个类
class OperationFactory{
    static function createOperation($operate){
        switch($operate){
            case "+":
                $oper=new Add();
                break;
            case "-":
                $oper=new Sub();
                break;
            case "*":
                $oper=new Mul();
                break;
            case "/":
                $oper=new Div();
        }
        return $oper;
    }
}

//开始测试
$oper=OperationFactory::createOperation("+");
$oper->num1=3;
$oper->num2=6;
$result=$oper->getResult();
echo $result;

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值