Не уверен, что мой заголовок правильный, потому что я даже не уверен, что использую правильные условия.Зависимость впрыска и/или заводская схема
У меня есть класс, который имеет свойство, являющееся объектом. При настройке этого свойства объект должен быть создан. Мой вопрос: как мне это сделать без жесткой связи?
Пример:
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);
}
}
Я мог бы просто передать нужный объект с помощью конструкции, но то, что происходит более необходимы?
Если, если я правильно понял заводскую модель, что бы это изменило? Мне все равно нужно было бы создать объект где-нибудь? Не сам объект, а фабрика. Снова плотная муфта? Кажется бесконечным для меня. Когда re-factoring class (es) он, однако, изолирован, где и как производятся класс (ы).
Если я установил функцию setSomeProperty только для принятия \ Lib \ some \ Object, то все равно должен быть создан родительский объект, который передает его для начала. Кажется, только сдвинуть место размещения, где оно создано?
Надеюсь, я достаточно ясен в том, что я пытаюсь задать.
Заранее благодарен!
EDIT То, что я прошу, это последовательность того, что создано, когда, где, почему.
Но где я могу создать этот заводский объект? Должен ли я передать его как зависимость? Предпочтительно без статичности. – John
Создайте его, прежде чем создавать то, что ему нужно. –
Тогда его еще крепко связали? Пример: public function something() {$ factory = new factory(); }? Не говорить о сеттерах? – John