定义

简单工厂模式,通过定义一个工厂类,负责完成类实例的创建,根据参数的不同返回不同的类示例。对外部来讲,只需传入一个正常的参数就可以获得想要的对象,而不必需要具体创建细节。创建类实例的方法通常为静态方法,所以简单工厂模式也称静态工厂方法模式。

使用场景

当要实现类实例的创建,对外隐藏创建类的细节时就可以使用简单工厂模式。通过简单工厂模式,对外部来说只需要知道有个工厂类即可,而不需要知道还有其他类。也就是说外部只需要对工厂类有依赖,从而降低耦合。

类图

PHP代码示例

运算类

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

加法类

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

减法类

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

工厂类

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;
    }
}

客户端

$opObj = OperationFactory::createOperate('+');
$opObj->numberA = 1;
$opObj->numberB = 2;
$res = $opObj->getResult();
echo $res;

版权声明:本文为yingww原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yingww/p/8535040.html