不知道我的標題是否正確,因爲我甚至不確定我是否使用了正確的術語。依賴注入和/或工廠模式
我有一個屬性是一個對象的類。設置此屬性時,必須創建對象。我的問題是如何在沒有緊密耦合的情況下做到這一點?
例子:
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