我坚持为我的问题提出一个干净的设计(下)。我已经考虑过发布/订阅或观察者模式,但我的问题似乎与这些方法相反,除非我没有正确思考。也许中介者模式会起作用,但由于某种原因,它对我来说仍然不太合适。所以,这里需要什么设计方面的帮助,请告诉我:)
我的问题是我需要一个可以处理来自多个来源的事件的处理程序。我需要一个可以管理来自多个地方的事件的热键管理器。IE。如果遇到按键,则应该执行一些操作。或者,如果按下麦克风(不同来源)上的按钮,则应该发生动作。
我目前的想法是将管理器实现为单例(不是这个的超级粉丝......),并在管理器中注册类。这些类需要实现一个接口,以保证管理器将附加到某个事件(当它们被注册时)。我只是不喜欢这样,因为班级需要引发这个事件,这不是合同本身所保证的