简单工厂模式

来源:互联网 发布:数据采集器厂家 编辑:程序博客网 时间:2024/05/16 19:55
<?php/** * 简单工厂模式 */Interface IOperation{    /**     * @return int     */    public function getResult();}class Operation{    private $num1 = 0;    private $num2 = 0;    /**     * @return int     */    public function getNum1(){        return $this->num1;    }    /**     * @param int $num1     */    public function setNum1($num1){        $this->num1 = $num1;    }    /**     * @return int     */    public function getNum2(){        return $this->num2;    }    /**     * @param int $num2     */    public function setNum2($num2){        $this->num2 = $num2;    }}class OperationAdd extends Operation implements IOperation{    /**     * @return int     */    public function getResult(){        // TODO: Implement getResult() method.        return ($this->getNum1() + $this->getNum2());    }}class OperationSub extends Operation implements IOperation{    /**     * @return int     */    public function getResult(){        // TODO: Implement getResult() method.        return ($this->getNum1() - $this->getNum2());    }}class OperationMul extends Operation implements IOperation{    /**     * @return int     */    public function getResult(){        // TODO: Implement getResult() method.        return ($this->getNum1() * $this->getNum2());    }}class OperationDiv extends Operation implements IOperation{    /**     * @return int     */    public function getResult(){        // TODO: Implement getResult() method.        return ($this->getNum1() / $this->getNum2());    }}class OperationFactory{    public static function createOperation($operationStr){        $operation = null;        switch($operationStr){            default:            case '+':                $operation = new OperationAdd();                break;            case '-':                $operation = new OperationSub();                break;            case '*':                $operation = new OperationMul();                break;            case '/':                $operation = new OperationDiv();                break;        }        return $operation;    }}$operation = OperationFactory::createOperation('*');$operation->setNum1(11);$operation->setNum2(12);echo $operation->getResult();
0 0
原创粉丝点击