我有一个包含了在大量的类方法使用的私有财产类:构造替代对于这种情况
class MyClass
{
private $_myProperty;
public function __construct($myPropertyId)
{
$this->_initMyPropertyModel($myPropertyId);
}
public function initMyPropertyModel()
{
$this->_myProperty = new MyProperty($this->_myPropertyId);
}
public function methodA()
{
// do stuff with $this->_myProperty;
}
public function methodA()
{
// do stuff with $this->_myProperty;
}
public function methodC()
{
// do stuff with $this->_myProperty;
}
}
的consructor需要一个模型的ID,然后试图实例模型从那个ID。该模型被设置为属性,然后用于所有其他类方法。
这样做的问题是,该模型instatiation可能出错,并因此在每个使用它的方法,一个潜在的问题模式不正确实例。
有没有更好的方式来处理这个代码?另外两种选择我看到的是:1。 强制客户端通过创建的模型,而不是ID 2.具有在使用模型 3.遥,从构造异常每个方法的空支票的,如果不妥善实例化但我不认为这是完全适合的。