当我一直在阅读文档和示例时,我发现 aLoggerInterface是通过依赖项的构造函数传递的,如此处所示,这允许依赖项输出到控制台。
我的问题是:
如果我有多个类,我是继续在构造函数中传递 a
LoggerInterface还是有更好的做法?或者我什至不应该将它传递给这些课程?如果我想让一个类在没有 a 的情况下工作
LoggerInterface,我是否总是只检查是否$this->logger为 null 然后采取相应的行动?
例如,
class ObjectOne {
/**
* @var LoggerInterface
*/
private $logger;
public function __construct (LoggerInterface $logger) {
$this->logger = $logger;
}
}
class ObjectTwo {
/**
* @var ObjectOne[]
*/
private $items;
/**
* @var LoggerInterface
*/
private $logger;
public function __construct (LoggerInterface $logger) {
$this->logger = $logger;
}
public function addObject () {
$this->items[] = new ObjectOne($this->logger);
}
}