我目前正在遇到一个用例,我想包装一个 EventBus 实例以使用装饰器模式提供额外的功能。如果 EventBus 将实现一个接口,这很容易做到。使用 EventBus 的当前实现(它直接继承自 Object,不实现接口),这只能通过子类化来完成。
所以我的问题是:没有 EventBus 实现接口是否有特定原因(例如 SyncEventBus 实现 EventBus,AsyncEventBus 扩展 SyncEventBus / 实现 EventBus)?
当然,使用子类实现装饰器模式有一些技巧,但特别是使用 EventBus 并将事件传递给注册对象的方式,这相对复杂且不简单。