所以我想要一些关于在这种情况下使用什么设计模式的建议。我有这个对象来处理用户输入,例如鼠标移动、按键和其他事件。我有一堆其他类型的对象,我希望能够“订阅”某些事件。例如,对象 A 可能想要监听“a”按键,而对象 B 想要监听“b”按键。这两个事件都来自一个 InputHandler 对象,该对象是抽象的,因此可以在应用程序中扩展事件。我想知道处理这个问题的最佳方法是什么。
考虑的选项:
为每个对象提供一个 InputHandler 对象,该对象在运行时设置为特定实例。这里明显的缺点是每个接收事件的对象都必须在运行时设置其 InputHandler,因此我必须跟踪每个这样做的对象。
创建基类 EventHandler 和 EventHandlerFactory。工厂可以在运行时设置 InputHandler,然后每个类都可以获得一个 EventHandler 实例,该实例侦听来自 InputHandler 的事件。我不太确定这个选择有什么问题,但它似乎不是最优雅的解决方案。
任何建议都非常感谢!