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>
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 |
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