Ho usato YADIF (ancora un altro framework per le dipendenze) in un'app PHP / Zend a cui sto lavorando per gestire le dipendenze. Ciò ha portato notevoli benefici in termini di classi di test e disaccoppiamento.
Tuttavia, una cosa che mi colpisce è che, nonostante il gioco di prestigio eseguito con questa tecnica, i nomi dei metodi impartiscono un grado di accoppiamento.
Probabilmente non è il miglior esempio -ma questi metodi sono distinti da ... diciamo il PEAR Mailer. I nomi dei metodi stessi sono una (sottile) forma di accoppiamento
//example
public function __construct($dic){
$this->dic = $dic;
}
public function example(){
//this line in itself indicates the YADIF origin of the DIC
$Mail= $dic->getComponent('mail');
$Mail->setBodyText($body);
$Mail->setFrom($from);
$Mail->setSubject($subject);
}
Potrei scrivere una serie di proxy / wrapper per nascondere questi metodi e quindi promuovere il disaccoppiamento, ma questo sembra un po 'eccessivo. Devi bilanciare la purezza con il pragmatismo ...
Quanto lontano faresti per nascondere le dipendenze nelle tue classi?