我在计划阶段有一个非GUI应用程序,它将充当RS485网络上从属设备的控制器。每个从属设备都是可寻址的,可以做简单的事情,如在简单的LCD屏幕上显示文本,接受来自键盘的文本甚至不同类型的读卡。这些设备具有“不讲话”的通信方式,这意味着控制器正在对“线路”上的每个设备进行轮询。决定使用哪种Java事件模式/模型
所以有一个通信点,一个RS485转以太网转换器设备的TCP插座。
我以前写过类似的东西,但是这是在事件驱动任何事情之前,也没有任何线程。我们在这里谈论System V Unix。 :-)
所以,我在Java中使用线程搞砸了,并且在这里做了一些研究。了解了Observable类和Observer接口。对我来说看起来不错,但为什么我想在可寻址时通知我的所有观察者?如果我使用多线程的方法,我不想用所有不适用于他们的数据唤醒我的所有线程。
所以我的问题是:哪一个更好的方式去这里? Observable/Observer很简单,可以让我马上开始,但对于所有线程/观察者来说,要唤醒那些不适合他们的消息似乎是一种浪费,即使它只是简单地使用'if '声明来测试传入的对象反对'this'。实现AWT ActionListener方法还是以EventObject开始更好?还有什么?
听起来像你想要一个发布/订阅模式 – Ascalonian 2015-01-26 18:31:13
检查出JMS,[RabbitMQ](https://www.rabbitmq.com/tutorials/tutorial-three-java.html),[HornetQ](http:// hornetq.jboss.org/),Google的[EventBus](https://code.google.com/p/guava-libraries/wiki/EventBusExplained),[Apache Camel](http://camel.apache.org/ publish-subscribe-channel.html) – Ascalonian 2015-01-26 18:40:48
签出项目Reactor:https://github.com/reactor/reactor – 2015-01-26 18:57:07