美文网首页
德玛西亚---简单工厂模式---PHP实现

德玛西亚---简单工厂模式---PHP实现

作者: i灬Mango | 来源:发表于2019-02-27 19:57 被阅读0次

英雄联盟系列,鸣谢【大话设计模式】大鸟与小菜

首先 看图听故事,


image.png

如采用活字印刷术:


image.png
image.png

================================================================

看图听故事环节结束

好想是get到了什么 ,那么。。。。。。先写一个【菜鸡版本】
coding............................
ok,六多兰剑盖伦出世

class Operation
{
    public $intNumberA;
    public $intNumberB;
    public $operator;

    public function validation($intNumberA, $intNumberB)
    {
        if ((is_int($intNumberA) && is_int($intNumberB)) == false) {
            return "所输入值非int";
        }
    }

    public function evaluation($intNumberA,  $intNumberB,  $operator)
    {
        $this->validation($intNumberA, $intNumberB);

        switch ($operator)
        {
            case "+":
                return $intNumberA + $intNumberB;
            case "-":
                return $intNumberA - $intNumberB;
            case "*":
                return $intNumberA * $intNumberB;
            case "/":
                if ($intNumberB == 0) {
                    return "0不能当分母!";
                } else {
                    return $intNumberA / $intNumberB;
                }
            default :
                return "暂未支持该运算";
        }
    }
}

$objectOperation = new Operation();

echo $objectOperation->evaluation(1, 2, '/');

好像对于实现功能来说 没啥问题了。
但是。。。没达到类似于活体印刷术的级别
也就是说 我6多兰的盖伦 被!单!杀!了!
叔可忍,他大娘都不能忍。
祭出大杀器---无尽之刃、饮血剑、阿塔玛之戟、幻影之舞、狂徒铠甲、自然之力
(面向对象思想 and 简单工厂模式)

coding...........................................

class Operation
{
    public $intNumberA;
    public $intNumberB;
    public $operator;

    public function validation($intNumberA, $intNumberB)
    {
        if ((is_int($intNumberA) && is_int($intNumberB)) == false) {
            return false;
        }
    }
}

class OperationAdd extends Operation
{
    public function __construct($intNumberA = 0, $intNumberB = 0)
    {
        $this->validation($intNumberA, $intNumberB);
    }

    public function getResult($intNumberA, $intNumberB)
    {
        return $intNumberA + $intNumberB;
    }
}

class OperationSub extends Operation
{
    public function __construct($intNumberA = 0, $intNumberB = 0)
    {
        $this->validation($intNumberA, $intNumberB);
    }

    public function getResult($intNumberA = 0, $intNumberB = 0)
    {
        return $intNumberA - $intNumberB;
    }
}

class OperationMul extends Operation
{
    public function __construct($intNumberA = 0, $intNumberB = 0)
    {
        $this->validation($intNumberA, $intNumberB);
    }

    public function getResult($intNumberA = 0, $intNumberB = 0)
    {
        return $intNumberA * $intNumberB;
    }
}

class OperationDiv extends Operation
{
    public function __construct($intNumberA = 0, $intNumberB = 0)
    {
        $this->validation($intNumberA, $intNumberB);
    }
    
    public function getResult($intNumberA = 0, $intNumberB = 0)
    {
        if ($intNumberB == 0) {
            return "0不能当分母!";
        } else {
            return $intNumberA / $intNumberB;
        }
    }
}

class OperationFactory
{
    public function createOperation($operator)
    {
        switch ($operator)
        {
            case "+":
                $obj = new OperationAdd;
                return $obj;
            case "-":
                $obj = new OperationAdd;
                return $obj;
            case "*":
                $obj = new OperationAdd;
                return $obj;
            case "/":
                $obj = new OperationAdd;
                return $obj;
        }
    }
}

$operationFactory = new OperationFactory;
echo $operationFactory->createOperation('+')->getResult(1, 2);

all right 现在我们的德玛西亚之力 可以去1V9了

作者:mango.Young
转载请注明出处 谢谢。

相关文章

  • 德玛西亚---简单工厂模式---PHP实现

    英雄联盟系列,鸣谢【大话设计模式】大鸟与小菜 首先 看图听故事, 如采用活字印刷术: ==============...

  • 亲爱的召唤师,你长大了呀

    “德玛西亚” “德玛西亚万岁” ““是时候表演真正的技术了!” “提莫队长正在待命” “不要怕。我来了 德玛西亚”...

  • 创建相关的设计模式

    简单工厂模式 工厂模式 工厂生产行为交由子类去实现 抽象工厂模式 三种工厂模式的缺点:1.简单工厂:工厂类需要实现...

  • 设计模式2-工厂模式

    工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式 简单工厂模式 简单工厂模式,就是建立一个工厂类,对实现了同一...

  • 2018-03-02

    德玛西亚

  • 啦啦啦

    德玛西亚

  • PHP-浅谈单例模式和工厂模式

    PHP中常用的设计模式有单例模式、工厂模式(简单工厂模式、工厂方法模式和抽象工厂方法模式)、适配模式、策略模式。 ...

  • 简单工厂模式(Simple Factory模式)

    什么是简单工厂模式 简单工厂模式的作用 具体实现

  • 设计模式

    php关键字 1.工厂模式分类 工厂模式具体可分为三类模式:简单工厂模式,工厂方法模式,抽象工厂模式; 1.1. ...

  • 红楼梦

    德玛西亚能力

网友评论

      本文标题:德玛西亚---简单工厂模式---PHP实现

      本文链接:https://www.haomeiwen.com/subject/izzfuqtx.html