对象需要使用一个对象进行实例化,在该对象上可以调用一个方法来注册而不是事件发生 - 而不是实例化代码侦听事件。
这是反模式吗?如果是这样,它有名字吗?
是否有理由以这种方式编码?
将要调用的对象传递给构造函数通常用于“构造函数注入”类型的依赖注入。见:https://en.wikipedia.org/wiki/Dependency_injection#Constructor_injection
当以这种方式使用时,它是一个很好的模式......
但是如果传入的对象实际上是一个事件监听器,那么它就变成了一个坏主意。注入事件监听器不是“依赖注入”,因为对象不依赖于其事件监听器,因此它的构造函数中不应该要求任何对象。限制事件生成对象以使其只能有一个侦听器也是非常糟糕的形式。
这是反模式吗?
没有
它有名字吗?
是否有理由以这种方式编码?
当然,请参阅:How to explain callbacks in plain english?
请注意,构造函数也是一种方法。将回调传递给构造函数与任何其他方法没有任何本质上的区别。