La definizione di DI citato da Wikipedia afferma: moduli di alto livelloRendere questa classe sia conforme al principio di inversione di dipendenza
A. non dovrebbero dipendere da moduli di basso livello. Entrambi dovrebbero dipendere dalle astrazioni. B. Le astrazioni non dovrebbero dipendere dai dettagli. I dettagli dovrebbero dipendere dalle astrazioni.
Sto cercando di applicare questo principio al mio codice:
class Printer{
private $logger;
function __construct(Zend_Log $logger){
$this->logger=$logger;
}
function print(){
//Some code
$this->logger->log('Logger in action ;)');
}
}
Ora, poiché il motivo per cui Printer
classe dipende Zend_Log
che non è né una classe astratta né un'interfaccia poi sto violando l'inversione di dipendenza principio.
Come posso risolvere che sapendo che Zend_Log
non si estende una classe astratta né implementare un'interfaccia?
Bella domanda .. –