PHP之简单工厂模式(二)

定义

简单工厂模式,经过定义一个工厂类,负责完成类实例的建立,根据参数的不一样返回不一样的类实例。对外部来说,只需传入一个正常的参数就能够得到想要的对象,而没必要须要具体建立细节。建立类实例的方法一般为静态方法,因此简单工厂模式也称静态工厂方法模式。php

使用场景

当要实现类实例的建立,对外隐藏建立类的细节时就能够使用简单工厂模式。经过简单工厂模式,对外部来讲只须要知道有个工厂类便可,而不须要知道还有其余类。也就是说外部只须要对工厂类有依赖,从而下降耦合。this

类图

PHP代码示例

运算类code

abstract class Operation
{
    public $numberA;
    public $numberB;
    abstract public function getResult();
}

加法类对象

class OperationAdd extends Operation
{
    public function getResult()
    {
        return $this->numberA + $this->numberB;
    }
}

减法类blog

class OperationSub extends Operation
{
    public function getResult()
    {
        return $this->numberA - $this->numberB;
    }
}

工厂类get

class OperationFactory
{
    public static function createOperate($type)
    {
        $obj = null;
        switch ($type) {
            case '+':
                $obj = new OperationAdd();
                break;

            case '-':
                $obj = new OperationSub();
                break;
            
            default:
                # code...
                break;
        }
        return $obj;
    }
}

客户端it

$opObj = OperationFactory::createOperate('+');
$opObj->numberA = 1;
$opObj->numberB = 2;
$res = $opObj->getResult();
echo $res;
相关文章
相关标签/搜索