2
respostas

Padrão observer, saber o que precisa

No exemplo do padrão observer, toda vez que se cria uma nota, precisa lembrar de executar todos aqueles passos:

NotaFiscalBuilder builder = new NotaFiscalBuilder(); builder.AdicionaAcao(new EnviadorDeEmail()); builder.AdicionaAcao(new NotaFiscalDao()); builder.AdicionaAcao(new EnviadorDeSms()); builder.AdicionaAcao(new Impressora());

Se toda vez que crio uma nota preciso lembrar dessa sequencia, fica complicado. Pode ser que estou entendendo errado, mas essa sequencia não deveria estar em outro lugar?

2 respostas

Oi Paulo, se realmente a sequência é obrigatória para toda a nota do sistema, você isolar isso numa factory qualquer e já retornar a nota criada (mantém o builder :)).

Você pode também modificar o método para receber uma lista de 'ações' ou colocar isso no construtor.