[JAVA] Beobachtermuster

Mehrere Beobachter überwachen die Statusänderung eines Objekts.
Die überwachte Klasse enthält mehrere Observer-Instanzen, und jeder Observer verwendet die Methoden der Observer-Klasse, um den Status zu ändern.
Observer enthält überwachte Klassenobjekte </ font>

Design Pattarm MENU

Überprüfen Sie mit der folgenden Klassenstruktur

Klasse Erläuterung
Mediator.class Objekte, die von jeder Observer-Klasse überwacht werden
Speichern Sie eine Instanz jeder Observer-Klasse in einer Liste
Instanz zur Liste hinzugefügt()Wenn ja, benachrichtigen Sie alle Beobachter über die Größe der Liste
abstract
Observer.class
Halten Sie eine zu überwachende Mediator-Instanz
Implementieren Sie die von Mediator verwendete Methode
ob1.class~ob2.class Implementierter Observer
user(Main.class) Funktionsprüfung
  • Benutzer Enthält die Bedeutung, die andere Entwickler für dieses Muster verwenden

Mediator.class


class Mediator{
  List list = new ArrayList<Observer>();
  void add(Observer obsvr){
       list.add(obsvr);
       notifyTo(list.size());  //NotifyTo, wenn die Liste aktualisiert wird()Lauf
  }
  void notifyTo(int size){
       Iterator it = list.iterator();
       while(it.hasNext()){
         Observer ob = (Observer) it.next();
         ob.update(size);      //Aktualisierung jeder in List gespeicherten Observer-Klasse()Benachrichtigen mit
       }
  }
}

abstract_Oberver.class


abstract  class Observer{
     Mediator mediator = null;
     int      mediatorListSize = 0;
     Observer(Mediator med){this.mediator=med;}
     void update(int size){
          mediatorListSize=size;
          System.out.println(
             mediatorListSize+":"+mediator.list.size()
          );
      }
}

java:ob1.class_ob2.class


class ob1 extends Observer{ob1(Mediator med){super(med);}}
class ob2 extends Observer{ob2(Mediator med){super(med);}}

user(Main.class)


public static void main(String[] args){
  Mediator md = new Mediator();
  md.add(new ob1(md));
  md.add(new ob2(md));
}

Recommended Posts

Beobachtermuster
Entwurfsmuster ~ Beobachter ~
Prototypmuster
Erinnerungsmuster
Vermittlermuster
Iteratormuster
Zusammengesetztes Muster
Builder-Muster
Brückenmuster
Befehlsmuster
Builder-Muster
Strategiemuster
Iteratormuster
Besuchermuster
Adaptermuster
Proxy-Muster
Strategiemuster
Zusammengesetztes Muster
Singleton-Muster
Singleton-Muster
Prototypmuster
Fassadenmuster
Dekorationsmuster
Fliegengewichtsmuster
Dekorateur Muster
Vermittlermuster
Fassadenmuster
Besuchermuster
Brückenmuster
Entwurfsmuster ~ Builder ~
[Java] Strategiemuster
Entwurfsmuster ~ Besucher ~
Java-Entwurfsmuster
Java-Rückrufmuster
Entwurfsmuster ~ Proxy ~
Entwurfsmuster ~ Zustand ~
Factory Method Pattern
Entwurfsmuster ~ Strategie ~
Entwurfsmuster ~ Singleton ~
Entwurfsmuster ~ Composite ~
Entwurfsmuster (2): Builder
Entwurfsmuster (1): AbstractFactory
[Java] Singleton-Muster
Entwurfsmuster ~ Befehl ~
Abstraktes Fabrikmuster
Entwurfsmuster ~ Iterator ~
Entwurfsmuster ~ Fassade ~
Entwurfsmuster ~ Brücke ~
Entwurfsmuster ~ Mediator ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Dekorateur ~
Muster der Vorlagenmethode
Entwurfsmuster ~ Interpreter ~
Factory Method Muster
Entwurfsmuster ~ Prototyp ~
[Java] Adaptermuster
Entwurfsmuster ~ Memento ~
Entwurfsmuster ~ Adapter ~
Entwurfsmuster ~ Fliegengewicht ~
PrintObserver "Observer Design Pattern: Beschreibung und Implementierungsbeispiel"
Java-Muster-Memo