Я читал о внедрении зависимостей, и мне кажется, что я довольно хорошо понимаю концепции, включая внедрение конструкторов и внедрение сеттеров.
Однако я не уверен, что бы я делал в следующем сценарии:
Скажем, у меня есть класс, который имеет много методов, но только один из этих методов требуетопределенный другой объект.Как мне предоставить этот объект методу?Если бы я не просто напрямую передал объект методу в качестве параметра, например, так:
class aClass
{
function aMethod(anotherClass $anotherClass)
{
anotherClass->hello();
}
function otherMethods()
{
}
.....
}
Другой вариант - предоставить его всему классу, что кажется ненужным.например, так:
class aClass
{
protected $_anotherClass;
function aMethod()
{
anotherClass->hello();
}
function otherMethods()
{
}
.....
function setAnotherClass(anotherClass $anotherClass)
{
$this->_anotherClass;
}
}
Когда я должен передать объект в метод и когда я должен использовать внедрение зависимостей через конструкторы / сеттеры?Есть ли эмпирическое правило или лучшая практика, когда следует использовать один из этих двух вариантов?
Спасибо за вашу помощь заранее.