Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Acoplamento e a estabilidade - Observer

Boa noite!

Gostaria de saber a opinião de vocês sobre o design abaixo:

Seguindo o exemplo da aula, tendo a interface:

public interface AcaoAposGerarNota {
    void executa(NotaFiscal nf);
}

Seria melhor eu criar um método no DAO que chame outro mais expressivo, como:

public class NotaFiscalDao implements DAO<NotaFiscal>, AcaoAposGerarNota {
    public void executa(NotaFiscal nf) {
        salva(nf);
    }
    public void salva(NotaFiscal nf) { ... }
    public NotaFiscal buscaPorID( ...) { ... }
}

Ou seria melhor criar uma classe observadora apenas para aquele evento de criação de NF e que implemente a AcaoAposGerarNota e use um DAO, ficando assim acoplado via interface.

public class SalvadorNFGerada implements AcaoAposGerarNota {
    private DAO<NotaFiscal> dao;
    (construtor com arg...)
    public void executa(NotaFiscal nf) {
        dao.salva(nf);
    }
}

Muito obrigado!

1 resposta
solução!

Eu criaria outra classe, como no seu último exemplo. Acho que fica mais separado e com a responsabilidade definida.