我一直在阅读依赖注入,我想我非常了解这些概念,包括构造函数注入和 setter 注入。
但是,我不确定在以下情况下我会做什么:
假设我有一个具有许多方法的类,但其中只有一个方法需要某个其他对象。如何将此对象提供给该方法?我是否应该像这样直接将对象作为参数传递给方法:
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;
}
}
什么时候应该将对象传递给方法,什么时候应该通过构造函数/设置器使用依赖注入?何时使用这两个选项之一是否有经验法则或最佳实践?
提前感谢您的帮助。