Respeitando os princípios do SOLID, existe algum jeito de usar $enviadorEmail->envia($nf);
ao invés de $this->enviadorEmail->envia($nf);
no trecho abaixo?
class GeradorNotaFiscal {
private $enviadorEmail;
...
public function __construct(EnviadorDeEmail $enviador,notaFiscalDao $nfDao) {
$this->enviadorEmail = $enviador;
...
}
public function gera(Fatura $fatura) {
$valor = $fatura->getValorMensal();
$nf = new NotaFiscal($valor,$this->impostoSobreValor($valor));
$this->enviadorEmail->envia($nf);
...
}
...
}