我被教导并因此被限制为将对象作为处理程序传递。我在我的 Java 和 Objective-C 编程项目中都使用了这种方法,并且它很有效。
然而,我偶然发现了一个框架,它将一个类注册为处理程序,而不是一个对象。我希望该框架是开源的,所以我可以看到它是如何工作的,但它不是:/。
谨防!注册类后,我实现了非静态方法来处理事件。如果它们是静态的,那么它的工作原理就很明显了,我真的很讨厌这种方法。
所以,这些是我的问题:
- 类处理程序如何工作以及与普通对象处理程序有何不同?
- 你什么时候推荐一个而不是另一个?
- 这种模式有名字吗?
我所说的对象处理程序是什么意思:
爪哇:
button.addActionListener(handlerObject);
我所说的类处理程序是什么意思:
爪哇:
object.addCrazyHandler(MyHandler.class);