维基百科引用的 DI 定义指出:
A. 高级模块不应该依赖于低级模块。两者都应该依赖于抽象。B. 抽象不应依赖于细节。细节应该取决于抽象。
我正在尝试将该原则应用于我的代码:
class Printer{
private $logger;
function __construct(Zend_Log $logger){
$this->logger=$logger;
}
function print(){
//Some code
$this->logger->log('Logger in action ;)');
}
}
现在既然Printer
类依赖于Zend_Log
哪个既不是抽象类也不是接口,那么我就违反了依赖倒置原则。
Zend_Log
知道既不扩展抽象类也不实现接口的情况下,我该如何解决?