Orientacao a Objetos, Padrão Observer

Olá pessoal, venho até vcs para que me ajudem a entender esse padrão ao qual estou estudando através da API Observer/Observable.

Bem, eu tenho duas Janela Swing A e B

as quais faço o controle para abrir a janela B com o Observer:

Janela B

@Override public void update(Observable o, Object arg) { aberto = (Boolean) arg; this.setVisible(aberto); }

Com a janela A passo esse comando no evento do Botao Abrir Janela B.

ce.setAberto(true);

garanto a abertura da mesma instância através da classe ControleEventos

[code] */
package exercicioObserverSwing3;

import java.util.Observable;

/**
*

  • @author josepedrodeoliveirajunior
    */
    public class ControleEventos extends Observable{
    private Boolean aberto;

    public void setAberto(Boolean aberto) {
    this.aberto = aberto;
    setChanged();
    notifyObservers(new Boolean(aberto));
    }

    void addObserver(ControleEventos cEventos) {
    this.addObserver(cEventos);
    }
    }[/code]

Meu código funciona perfeitamente, mas me veio algumas dúvidas a mente:

1.Eu sempre terei que adicionar observadores através da classe Main ou posso adicioná-los nas classes swing?

  1. como fica o metodo update com vários eventos?

  2. Seria melhor eu implementar minha interface Observer e classes de Observadores Concretos ou posso usar API do java mesmo?

Obrigado a todos.