我正在开发基于LWJGL的游戏引擎。 我需要开发一个事件系统。 当然,有许多事件,例如KeyEvent或MouseButtonEvent等。 然后,事件处理器应该能够处理它得到的事件的类型。 我现在计划使用event.getClass()。getCanonicalName()从事件变量获取类名,然后从Hashmap获取事件的确切处理器。 但是我确实担心快速使用getCanonicalName会带来一些性能问题。 我是否应该使成员变量表示在Event类中是什么类型的事件? 或者,如果有一些更优雅的方式来处理这样的事情?
(通过这种方式,用户可以添加更多事件类型,因此我们不能使其过于静态。)