Voici une démo simple.
public class EventBusDemo{
public static void main(String[] args) {
handleTransaction();
}
public static void handleTransaction() {
CatSubscriber catSubscriber = new CatSubscriber();
PandaSubscriber pandaSubscriber = new PandaSubscriber();
DogSubscriber dogSubscriber = new DogSubscriber();
EventBus eventBus = new EventBus();
Animal cat = new Cat();
Animal dog = new Dog();
Animal panda = new Panda();
eventBus.register(pandaSubscriber);
eventBus.register(catSubscriber);
eventBus.register(dogSubscriber);
eventBus.post(cat);
eventBus.post(dog);
eventBus.post(panda);
}
}
interface animal {
void run();
}
classe Cat implémente des animaux {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
System.out.println(Cat.class.getSimpleName() + " run");
}
}
classe CatSubscriber {
@Subscribe
public void catRun(Animal animal) {
animal.run();
}
}
Dog classe
implémente des animaux {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
System.out.println(Dog.class.getSimpleName() + " run");
}
}
classe DogSubscriber {
@Subscribe
public void dogRun(Animal animal) {
animal.run();
}
}
classe Panda implémente des animaux {
@Override
public void run() {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// TODO Auto-generated method stub
System.out.println(Panda.class.getSimpleName() + " run");
}
}
classe PandaSubscriber {
@Subscribe
public void pandaRun(Animal animal) {
animal.run();
}
}
Vous devriez vraiment ajouter quelques explications pour expliquer pourquoi cela devrait fonctionner - vous pouvez également ajouter du code ainsi que les commentaires dans le code lui-même - sous sa forme actuelle, il ne fournit aucune explication qui puisse aider le reste de la communauté à comprendre ce que vous avez fait pour résoudre/répondre à la question.Ceci est particulièrement important pour une question plus ancienne et les questions qui ont déjà des réponses. – ishmaelMakitla