我正在创建一个基于事件的API,用户可以通过添加侦听器对象(在Java或C#中常见)来订阅事件。当事件发生时,所有订阅的侦听器都将与事件信息一起被调用。设计事件时,防止侦听器被添加两次是否是一个好主意?
我最初决定不要多次添加一个事件监听器。如果添加的侦听器已存在于侦听器集合中,则不会再次添加该侦听器。然而,在更多地思考它之后,似乎大多数基于事件的结构实际上并没有阻止这一点。我的初始本能是否错误?我不知道该走哪条路。我想我认为防止添加现有的侦听器将有助于避免常见的编程错误。再次,它也可能隐藏一个错误,当代码不应该运行时,它会导致代码被多次运行。
看起来像一个dup http://stackoverflow.com/questions/1321296/when-registering-for-java-events-are-duplicate-listeners-typically-allowed – 2011-06-28 20:44:14