Zak*_*ria 7 java multithreading design-patterns event-handling
我想在Java中实现一个设计,我有多个事件源(Threads).此类事件源完成特定任务并且必须通知唯一的事件处理程序(类),并且此事件必须根据事件源通知完成其他任务.
我的问题是:如何在Java中以适当的方式实现这个设计?有一种类似于这种设计的设计模式吗?
先感谢您 :).
我认为您正在寻找观察者模式。Java 确实有一些标准接口(java.util.Observer、java.util.Observable),尽管这些接口不是特定于类型的;因此,如果域似乎需要它,您可以考虑自己的。
class MyThread implements Runnable {
Observable observable;
public MyThread(EventHandler observer) {
observable = new Observable();
observable.addObserver(observer);
}
public void run() {
while (!done()) {
Object result = doStuff();
observable.notifyObservers(result);
}
}
}
// might have this be singleton
class EventHandler implements Observer {
public synchronized void update(Observable o, Object arg) {
accomplishOtherTask();
}
}
Run Code Online (Sandbox Code Playgroud)