Para que, quando o estado de um objeto muda, todos os objetos que dependem dele são notificados e mudam de acordo.
Existem muitas maneiras de implementar o padrão do observador: esse padrão deve incluir duas funções: observador e objeto que estão sendo observados. Existe uma relação lógica de "observação" entre o observador e o observador. Quando o observador mudar, o observador observará essas alterações e emitirá alterações correspondentes.
/*** Interface do observador: Observer, classe que precisa usar o modo Observador precisa implementar essa interface*/Public Interface Observer {public void update (objeto obj);} /*** Observador (geralmente classe abstrata, conveniente para expansão): Declare Método, ocorreu alguma alteração, notifique o observador da mudança. */interface pública foibservada {public void addObServer (observador obs); // adicione objeto observador public void removebserver (observador obs); // objeto observador public void notifyObServers (string alterado); // notifique o objeto Observador para alterar correspondência}}}}} /*** Observador de destino: implemente a interface do observador e execute as operações correspondentes no objeto Observador*/Classe pública Iplementos concretados com a Lista de coleta de objetos de Observador {// Observer List <Terver> List = new ArrayList <Observer> (); @Override public void addobserver (observador obs) // Adicione o observador {if (! List.contains (obs)) {list.add (obs); }} @Override public void RemoneBServer (Observer obs) // O observador diz ao observador para cancelar a observação e remover o observador do contêiner {if (list.contains (obs)) {list.remove (obs); }} @Override public void notifyObServers (string alteração) {// atravessa o objeto e chama métodos separadamente para atualizar operações de notificação para (observador obs: list) {obs.update (alteração); }}} /*** Target observado (observador específico)*/classe pública Specificwatcher implementa o observador {@Override public void update (object obj) {System.out.println (obj.tostring ()); // alterações de strats}}}/** ** code* @Description:*/public Test {Public) Concretado (); Observador obs1 = new specificwatcher (); Observador obs2 = new specificwatcher (); Observador obs3 = new specificwatcher (); bobs.AdDOBSERVER (OBS1); // Adicionar objetos observadores Bobs.Addobserver (OBS2); bobs.Addobserver (OBS3); bobs.NotifyObServers ("*** notificado ***"); System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Finalmente imprima o resultado:
O exposto acima é tudo sobre este artigo, espero que seja útil para todos aprenderem a programação Java.