【发布时间】:2013-06-13 08:11:45
【问题描述】:
如何确定一个方法应该返回IEnumerable<T> 还是IObservable<T>?
为什么我会选择一种范式而不是另一种?
【问题讨论】:
-
这就像在问如何决定一个方法应该返回一个 List
还是一个 DateTime... 这些类型在语义上并不相关。 -
我同意@MatthewWatson,两个界面的用途不同。
-
IEnumerable用于 pulling 集合中的数据,IObservable用于订阅 pushed 数据。 -
他们不是都在枚举。 IEnumerable 基本上就像“给我下一项”,IObservable 是“嘿看,有下一项”。
-
我认为 IObservable
和 IEnumerableIObservable 在语义上是非常相关的。他们可能在很多方面是对立的,但这并不意味着他们是无关的。事实上,Eric Meijer 已经就这一点进行了多次讨论,可以在这里找到一个视频:channel9.msdn.com/Shows/Going+Deep/… - 这也不是一个愚蠢的问题。在许多情况下,选择一种或另一种会对系统设计产生深远的影响。
标签: c# .net ienumerable system.reactive