作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 Java 重新实现 .Net API,该 API 指定了一大堆事件,但 java 并不隐式支持。
我将使用观察者模式,但由于事件的数量,我真的不想让界面变得困惑。
我想知道声明一个“Event”类是否是一个好主意,它有一个订阅方法,该方法采用“EventHandler Interface”和一个 throw 方法。
这样,我就不会用无数的订阅者列表弄乱我的父类,因为各个事件会处理它们。
我能看到的唯一问题是 throw 命令的参数,因为不同的事件有不同的参数。
我提出的解决方案是让 throw 方法接受对象数组,或者创建一个像 IEventArguemnts 这样的接口(interface),它可以传递给 throw 命令并由订阅事件的代码处理,这似乎对我来说更有意义。
如果有任何改进此问题的建议,我将不胜感激。或任何改进。
最佳答案
Java 有事件,也有对事件的 API 支持。查看 java.util 包。您将看到 java.util.EventListener
、java.util.EventObject
以及其他一些内容。还有用于维护订阅者等的支持类。例如,AWT 和 Swing API 很大程度上是基于事件的。
通常,addXxxListener(XxxListener l)
方法(即订阅方法)将在触发事件的类上执行,而不是在事件类本身上执行。事件就是消息,它是从发布者向订阅者触发的内容。
关于Java事件: Is this a good way to go about it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/450653/
我是一名优秀的程序员,十分优秀!