IObservable in .NET Framework 4.0 Beta2
-
06-07-2019 - |
Frage
IObservable<T>
und IObserver<T>
Schnittstellen werden direkt im System
Namespace in .NET Framework 4.0 Beta 2 platziert. Warum nicht in System.Collections.Generic
, wie IEnumerable<T>
?
P. S. Reaktive Framework-Vorschau von Silverlight Toolkit enthält IObserver<T>
im System.Collections.Generic
Namespace.
Lösung
Die Sache, dass neue IObservable / IObserver Schnittstellen beschreiben, ist eine Abstraktion, viel höher ist als nur Sammlungen, die als Sonderfall von Berechnungen zu sehen ist (deshalb Listen in Haskell Monaden sind). So ist es offensichtlich, dass eine solche Verallgemeinerung auf System-Namespace platziert wird.
Werfen Sie einen Blick auf diese brillante Besetzung von Erik Meijer, wo er die Ideen hinter den Schnittstellen beschreibt.
Andere Tipps
IObservable ist eine Schnittstelle, identifiziert eine Klasse, die die Observer Muster implementiert. Es ist nicht zu Sammlungen. Sein mehr in Bezug auf eine Alternative zu den Veranstaltungen.
Obwohl dies eine alte Frage, die ich gestolpert, ich wollte nur zwischen IObservable @ Control Einschätzung des ‚Dualismus‘ zu unterstützen und IEnumerable als ‚Basis Pushed‘ vs ‚Pull basierte‘ Sammlung mit einem Link zu Erik Meijer ‚Rx in 15 Minuten, wo er als zu sagen, genau das zitiert werden. http://channel9.msdn.com/posts / Charles / Erik Meijer-Rx-in-15-Minuten /
Somit ist diese gedrückt basierte Sammlung kann das grundlegende Paradigma der ‚eine banale Reihe genannt Ereignisse‘ grundlegend verschieben in einen asynchronen, wählbar, Abfrage-fähig, passable und subscribe-Lage erstklassige Sammlung von deklarativen umsetzbare. Etwas, das das tut, gehört im Kern BCL-Namespace oder vielleicht verdient seine eigenen, aber es ist zu weit über Yet-another-Sammlung seinen Namensraum zu teilen. Wohlgemerkt, das ist nur meine Meinung.