什么应该进入Factory方法中的switch语句的默认情况?

时间:2016-03-11 16:37:33

标签: php switch-statement default factory factory-pattern

当我的所有对象创建参数都定义良好时,工厂方法很有效。但是,使用遗留代码时,默认情况似乎是“无声地”失败'或编写代码结构,防止无效数据到达工厂方法。

工厂方法中的switch语句的 x := 15deg `y := 4 * (x + 15) 情况通常是什么?

以下示例......

default:

2 个答案:

答案 0 :(得分:2)

抛出InvalidArgumentException。有人试图实例化你工厂不了​​解的一种物体。

答案 1 :(得分:0)

如果我正确理解

class Factory
{

    private $_classes = array();

    function getObject($param,$constParam = null)
    {
        //check exist object exist
        if(isset($this->_classes[$param])) {
            return $this->_classes[$param];
        } 

        $className =  strtoupper($param);
        //check class exist
        if(!class_exists($className)) {
            return new fakeClass(); //or exception
        }

        // if don't passed params to construct
        if(is_null($constParam)) {
           $this->_classes[$param] = new $className();
           return $this->_classes[$param];
        }

        // else params passed to construct
        $this->_classes[$param] = new $className($constParam);
        return $this->_classes[$param];
    }
}

它是对象的原始实现函数getter ...如果我正确理解你。