Pessoal, estou com o seguinte código:
[code]private synchronized void disparaCartaSemDestinatario() {
GeradorDeCartaEvent evento = new GeradorDeCartaEvent(this);
Iterator i = geradorListeners.iterator();
while (i.hasNext()) {
((GeradorDeCartaListener)i.next()).cartaSemDestinatario(evento);
}
}
private synchronized void disparaCartaComumCriada() {
GeradorDeCartaEvent evento = new GeradorDeCartaEvent(this);
Iterator i = geradorListeners.iterator();
while (i.hasNext()) {
((GeradorDeCartaListener)i.next()).cartaComumGerada(evento);
}
}
private synchronized void disparaCartaEletronicaCriada() {
GeradorDeCartaEvent evento = new GeradorDeCartaEvent(this);
Iterator i = geradorListeners.iterator();
while (i.hasNext()) {
((GeradorDeCartaListener)i.next()).cartaEletronicaGerada(evento);
}
}[/code]
Estou implementando o padrão observer. No exemplo acima há muita coisa que se repete (só muda a linha de lançamento do evento). Há alguma forma de refatorar esse código a fim de aproveitar o código comum aos 3 métodos?
Agradeço desde já =] [/code]