为什么Guava EventBus不实现接口?

为什么Guava EventBus不实现接口?,guava,Guava,我目前正在经历一个用例,在这个用例中,我希望包装一个EventBus实例,以使用decorator模式提供额外的功能。如果EventBus将实现一个接口,这将很容易实现。对于EventBus的当前实现(它直接从对象继承,不实现接口),这只能通过子类化来完成 所以我的问题是:没有让EventBus实现接口(例如SyncEventBus实现EventBus,AsyncEventBus扩展SyncEventBus/实现EventBus)是否有特定的原因 当然,使用子类化实现decorator模式有一些

我目前正在经历一个用例,在这个用例中,我希望包装一个EventBus实例,以使用decorator模式提供额外的功能。如果EventBus将实现一个接口,这将很容易实现。对于EventBus的当前实现(它直接从对象继承,不实现接口),这只能通过子类化来完成

所以我的问题是:没有让EventBus实现接口(例如SyncEventBus实现EventBus,AsyncEventBus扩展SyncEventBus/实现EventBus)是否有特定的原因


当然,使用子类化实现decorator模式有一些技巧,但特别是使用EventBus和它将事件传递给注册对象的方法,这是相对复杂且不简单的。

我为您搜索了Guava问题跟踪器


主要是因为我们仍然在处理它,而且我们不一定准备修复一个保证以后不会损坏的API。我目前依赖于类API。根据接口API wrt有什么区别。原料药破损?除了额外的类之外,我目前只能看到在层次结构中拥有接口的优点,特别是在可扩展性方面。但也许我遗漏了一些你知道但我不知道的用例?如果很多人实现了这个接口,然后我们想要(例如)向接口添加方法,那么所有这些人都会崩溃。如果人们只使用Guava控制的类API,这是不可能的。谢谢谷歌帮我搜索;-)。我想我可以自己查一下(哦)。在阅读了讨论之后,我想我将编写自己的接口和包装器来获得所需的内容。