Я хочу реализовать дизайн в Java, где у меня есть несколько источников события (Потоки). Такой источник события выполняет определенную задачу и должен был уведомить уникальный Обработчик событий (Класс), и этот должен выполнить другие задачи согласно уведомлениям об источниках события.
Мой вопрос: как реализовать этот desiqn соответствующим способом в 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();
}
}
Для меня это похоже на образец актера. Каждый поток действует как актер, выполняя одну единственную задачу. Результат помещается в очередь (да) для обработки следующим субъектом.
Однако у меня нет опыта работы с фреймворками java-актеров. Проконсультируйтесь по этому поводу в Google.
В GWT это называется шиной событий . Либо GWT. HandlerManager или GWTx. PropertyChangeSupport - это реализации, рекомендованные Google. Последний доступен в J2SE, начиная с версии 1.4.2
.Возможно, я не понимаю ваш вопрос, но я думаю, что вам не нужен какой-либо шаблон проектирования, а что-то из пакет java.util.concurrent .
ThreadPoolExecutor?