IObservable<T>
和IObserver<T>
接口直接放置System
在 .NET Framework 4.0 Beta2 的命名空间中。为什么不在System.Collections.Generic
,喜欢IEnumerable<T>
?
ps Silverlight Toolkit 中的 Reactive Framework 预览包含IObserver<T>
在System.Collections.Generic
命名空间中。
IObservable<T>
和IObserver<T>
接口直接放置System
在 .NET Framework 4.0 Beta2 的命名空间中。为什么不在System.Collections.Generic
,喜欢IEnumerable<T>
?
ps Silverlight Toolkit 中的 Reactive Framework 预览包含IObserver<T>
在System.Collections.Generic
命名空间中。
IObservable是一个标识实现观察者模式的类的接口。它与收藏无关。它更多地与提供事件的替代方案有关。
新的 IObservable/IObserver 接口描述的东西是一个比集合更高的抽象,集合可以被看作是计算的一种特殊情况(这就是为什么 Haskell 中的列表是单子)。所以很明显,这种泛化是放在 System 命名空间中的。
看看Erik Meijer 的精彩演员阵容,他在其中描述了界面背后的想法。
虽然这是我偶然发现的一个老问题,但我只是想支持@ControlFlow 对 IObservable 和 IEnumerable 之间的“二元论”的评估,即“基于推送”与“基于拉取”的集合,并链接到 Erik Meijer 的“Rx in 15 Minutes” ',在那里可以引用他的话说。http://channel9.msdn.com/posts/Charles/Erik-Meijer-Rx-in-15-Minutes/
因此,这个基于推送的集合可以从根本上将“普通的一系列被调用事件”的基本范式转变为异步、可选择、可查询、可传递和可订阅的声明性可操作的一流集合。属于核心 BCL 命名空间或可能值得拥有的东西,但远远超出 Yet-Another-Collection 以共享其命名空间。请注意,这只是我的意见。