【发布时间】:2014-04-03 19:49:48
【问题描述】:
我的一个类需要提供两种构造实例的方式:常规方式,即使用构造函数,以及通过工厂静态方法。问题是要在工厂方法中构造一个对象,我需要向构造函数提供一些参数,这会导致不必要的计算,因为这些计算的结果最终会出现在对象的属性(即对象变量)中,但是工厂方法知道这些属性应该预先设置的值,并且可以在对象构造后立即完美地设置它们。
class AClass
{
public function __construct ($param1, $param2)
{
// some computations ending up in $this->_prop etc.
}
public static function factory ()
{
$obj = new self(); // no way
$obj->_prop = "predefined value";
}
protected $_prop;
}
有没有办法构造一个“空白”对象,然后“手动”设置其属性?
【问题讨论】:
标签: php class constructor