[JAVA] Modèle d'observateur

Plusieurs observateurs surveillent le changement d'état d'un objet
La classe surveillée contient plusieurs instances d'Observer, et chaque observateur utilise les méthodes de la classe Observer pour changer l'état.
Observer contient des objets de classe surveillés </ font>

Design Pattarm MENU

Vérifiez avec la structure de classe suivante

classe Explication
Mediator.class Objets surveillés par chaque classe Observer
Stocker une instance de chaque classe Observer dans une liste
Instance ajoutée à la liste()Si tel est le cas, informez tous les observateurs de la taille de la liste
abstract
Observer.class
Détenir une instance Mediator à surveiller
Mettre en œuvre la méthode utilisée par Mediator
ob1.class~ob2.class Observateur implémenté
user(Main.class) Contrôle de fonctionnement
  • Utilisateur Inclut la signification que les autres développeurs utilisent ce modèle

Mediator.class


class Mediator{
  List list = new ArrayList<Observer>();
  void add(Observer obsvr){
       list.add(obsvr);
       notifyTo(list.size());  //NotifyTo lorsque la liste est mise à jour()Courir
  }
  void notifyTo(int size){
       Iterator it = list.iterator();
       while(it.hasNext()){
         Observer ob = (Observer) it.next();
         ob.update(size);      //Mise à jour de chaque classe Observer stockée dans List()Notifier en utilisant
       }
  }
}

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

Modèle d'observateur
Modèle de conception ~ Observateur ~
Modèle de prototype
Motif de souvenir
Motif médiateur
Modèle d'itérateur
Motif composite
Modèle de constructeur
Modèle de pont
Modèle de commande
Modèle de constructeur
Modèle de stratégie
Modèle d'itérateur
Modèle de visiteur
Modèle d'adaptateur
Modèle de proxy
Modèle de stratégie
Motif composite
Motif singleton
Motif singleton
Modèle de prototype
Modèle de façade
Motif décorateur
Modèle de poids mouche
Motif décorateur
Modèle de médiateur
Motif de façade
Modèle de visiteur
Modèle de pont
Modèle de conception ~ Constructeur ~
[Java] Modèle de stratégie
Modèle de conception ~ Visiteur ~
Modèle de conception Java
modèle de rappel java
Modèle de conception ~ Proxy ~
Modèle de conception ~ État ~
Modèle de méthode d'usine
Modèle de conception ~ Stratégie ~
Modèle de conception ~ Singleton ~
Modèle de conception ~ Composite ~
Modèle de conception (2): constructeur
Modèle de conception (1): AbstractFactory
[Java] Motif singleton
Modèle de conception ~ Commande ~
Modèle d'usine abstraite
Modèle de conception ~ Itérateur ~
Modèle de conception ~ Façade ~
Modèle de conception ~ Pont ~
Modèle de conception ~ Médiateur ~
Modèle de méthode de modèle
Modèle de conception ~ Décorateur ~
Modèle de modèle de méthode
Modèle de conception ~ Interprète ~
Modèle de méthode d'usine
Modèle de conception ~ Prototype ~
[Java] Modèle d'adaptateur
Modèle de conception ~ Memento ~
Modèle de conception ~ Adaptateur ~
Modèle de conception ~ Poids mouche ~
PrintObserver "Modèle de conception d'observateur: description et exemple d'implémentation"
Mémo de modèle Java