PHP之简单工厂模式(二)

定义

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

使用场景

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

类图

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;
posted @ 2018-03-09 17:25  游云浪天  阅读(161)  评论(0编辑  收藏  举报