Claro para eso es precisamente Dependendy Injection, mira este ejemplo:
Código PHP:
Ver originalclass Noticias {
private $_db;
public function __construct() {}
public function setDb(DBInterface $db) {
$this->_db = $db;
}
}
Luego desde donde unes las clases:
Código PHP:
Ver original$Db = new DB(/** Datos **/);
$Noticias = new Noticias();
$Noticias->setDb($Db);
Así como dice _ssx la clase noticias requiere de una db para trabajar, pero a la hora de usar una interfaz/clase estamos desacoplando que tipo de db va a usar.
En el ejemplo del auto / llantas, usando DI es decirle este auto puede usar cualquier tipo de llanta (necesita llantas para caminar) pero puede ser llantas para nieve, llantas de carreras, etc.
Saludos.