不确定我的标题是否正确,因为我什至不确定我使用的术语是否正确。
我有一个类,它的属性是一个对象。设置此属性时,必须创建对象。我的问题是如何在没有紧密耦合的情况下做到这一点?
例子:
class A
{
protected $_depending;
protected $_somePropertyObject;
public function __construct(\Lib\Dependency $depending)
{
$this->_setDepending($depending);
}
protected function _setDepending(\Lib\Dependency $depending)
{
$this->_depending = $depending;
}
public function setSomeProperty($someProperty)
{
// I want to prevent this
$this->_somePropertyObject = new \Lib\some\Object($someProperty);
}
}
我可以通过构造传递所需的对象,但还需要发生什么?
如果我正确理解工厂模式,这会发生什么变化?我还需要在某处创建对象吗?不是对象本身,而是工厂。又是紧耦合?对我来说似乎无穷无尽。然而,当重构类时,它在哪里以及如何制作类是孤立的。
如果我将 setSomeProperty 函数设置为仅接受 \Lib\some\Object 那么仍然需要由传递它的父对象创建。似乎只是改变创建位置的位置?
希望我对我要问的问题足够清楚。
提前致谢!
编辑我要问的是何时、何地、为什么创建的顺序。