【发布时间】:2011-05-27 07:34:25
【问题描述】:
在我上次的工作面试中,有人问我如何实现一个公开事件并在新的事件订阅者订阅该事件时通知他们的类。
换句话说,当数据源更新时,一个类会公开一个事件来通知订阅者;许多其他类可以在任何时间点订阅该事件。当一个类订阅事件时,必须通知它获取存储到数据源中的最新版本数据,但不得通知其他类(它们已经是最新的)。
他们建议我重写 addHandler 方法,但我如何只通知新订阅者?
.net 是否有我不知道的功能,或者我需要在订阅者类中定义一个方法,以便在添加到处理程序时调用(某种观察者模式)?
编辑:我想我不清楚,所以我会尝试用另一种方式解释它。 假设我有一个观察者模式。当一个新的观察者订阅主题时,它会立即更新为主题的最新数据源值。稍后,当数据源中的某些内容发生变化时,主题将像往常一样通知所有注册的观察者。有人问我如何使用 .net 事件来实现这一点
【问题讨论】: