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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top