不知道我的标题是否正确,因为我甚至不确定我是否使用了正确的术语。依赖注入和/或工厂模式
我有一个属性是一个对象的类。设置此属性时,必须创建对象。我的问题是如何在没有紧密耦合的情况下做到这一点?
例子:
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,那么仍然需要由传递它开始的父对象创建。似乎只是改变了它的创建位置?
希望我清楚自己想要问什么。
在此先感谢!
编辑我在问什么是什么时候,在哪里,为什么创建的顺序。
但是我在哪里创建这个工厂对象?我应该将它作为依赖项传递吗?优选没有静电。 – John 2013-03-27 19:16:47
在创建需要之前创建它。 – 2013-03-27 19:35:52
那么它仍然紧密耦合?例如:public function something(){$ factory = new factory(); }?不要谈论制定者? – John 2013-03-27 19:52:45