gpt4 book ai didi

design-patterns - 设计模式 - 事件处理

转载 作者:行者123 更新时间:2023-12-04 07:20:44 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。




Improve this question




所以我想要一些关于在这种情况下使用什么设计模式的建议。我有这个对象来处理用户输入,例如鼠标移动、按键和其他事件。我有一堆其他各种类型的对象,我希望能够“订阅”某些事件。因此,例如对象 A 可能想听“a”按键,而对象 B 想听“b”按键。两个事件都来自同一个 InputHandler 对象,该对象是抽象的,因此可以在应用程序中扩展这些事件。我想知道处理这个问题的最佳方法是什么。

考虑的选项:

  • 为每个对象提供一个在运行时设置为特定实例的 InputHandler 对象。这里明显的缺点是每个接收事件的对象都必须在运行时设置它的 InputHandler,所以我必须跟踪每个这样做的对象。
  • 创建基类 EventHandler 和 EventHandlerFactory。工厂可以在运行时设置 InputHandler,然后每个类都可以获得一个 EventHandler 实例,该实例监听来自 InputHandler 的事件。我不确定这个选择有什么问题,但它似乎不是最优雅的解决方案。

  • 任何建议都非常感谢!

    最佳答案

    我会看 Observer设计模式。如果您将此与 Event Aggregator 结合使用,您应该拥有所需的一切。

    关于design-patterns - 设计模式 - 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17635708/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com