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