让我用一个例子来解释我的意思。
我有通常的subscribe-post事件系统,其中事件处理程序是带有注释@EventHandler
或其他东西的方法(在我的情况下是@EventSubscribe
,但是whatevers),它们有一个类型的参数是类Event
@EventHandler
public void onSomeEvent(SomeEvent event)
{
//code here
}
现在,在其他人的subscribe-post事件系统版本中,我看到一个空接口Listener
或类似的东西,你可以想象基本上是这样的:
public interface Listener {}
扩展Listener
的类应该包含@EventHandler
的方法,因为它们的EventBus(或者它们可能称之为EventManager)只能使用Listener
来获取它们的注册表方法。
在我的版本中,我试图放弃Listener
的想法,让我的EventBus将对象用于他们的注册表方法,这种做法和我尝试过的一样好。
现在,我知道有一个Listener
接口会让它更容易阅读,因为扩展它们的类会立即被识别为包含事件处理程序,但我只是想知道它们是否还有其他任何好处,因为所以我可以完全没有那种界面。
PS:为了将来参考,是否有空接口的特殊名称,或以这种方式使用的空接口?