Come posso usufruire del IObservable / IObserver per sbarazzarsi del mio “oggetto Dio”?

StackOverflow https://stackoverflow.com/questions/2275167

Domanda

In un sistema Attualmente sto lavorando, ho molti componenti che sono definite come interfacce e classi di base. Ciascuna parte del sistema presenta alcuni punti specifici dove interagiscono con altre parti del sistema.

Ad esempio, i dati readying componente prepara alcuni dati che alla fine ha bisogno di andare alla parte di elaborazione dei dati, la componente di comunicazione ha bisogno di interrogare i componenti diversi per il loro status per la trasmissione verso l'esterno, ecc.

Al momento, mi incollo queste parti del sistema insieme utilizzando un "dio oggetto", o di un oggetto con profonda conoscenza delle diverse parti del sistema. Si registra con gli eventi qui e navette i risultati con le metodiche di là, crea un metodo di callback qui e restituisce il risultato di questo metodo laggiù, e passa molte richieste in una coda di multi-threaded per l'elaborazione perché "sa" alcune azioni hanno per l'esecuzione su thread STA, ecc

Mentre la sua comoda, mi preoccupa che questo tipo sa tanto di come tutti gli altri nel sistema è progettato. Mi piacerebbe molto preferiscono un hub più generico che può essere dato esempi che possono esporre eventi o metodi o callback o che possono consumare questi.

Ho visto di più sulle caratteristiche IObservable / IObserver del quadro reattivo e che vengono laminati in .NET 4.0 (credo).

Posso sfruttare questo modello per aiutare sostituire il mio "dio oggetto"? Come dovrei andare a fare questo? Ci sono le risorse necessarie per utilizzare questo modello per questo scopo specifico?

È stato utile?

Soluzione

Sembrerebbe che è possibile sostituire il tuo dio oggetto con quello che MSDN descrive qui:

  

Per creare elaborazione di eventi complessi   applicazioni (CEP) che utilizzano il Microsoft   piattaforma di StreamInsight, si crea   strutture che definiscono gli eventi,   oggetti che producono e consumano   eventi e modelli di query che   contenere la logica di business necessaria per   elaborare gli eventi.

La nostra squadra non si sta muovendo per .Net 4.0 in tempi brevi (purtroppo). Così abbiamo aggirato un dio oggetto scenario con la costruzione di un quadro personalizzato simile a quello che MAF / MEF fornisce. Questo ha creato una base di conoscenza distribuita utilizzando quello che Microsoft chiama una adattatore . Ogni adattatore è responsabile solo per proprio modulo lo è, il passaggio di dati, eventi, ecc C'è un comune operatore , che riceve i dati e gli eventi, i processi, e passa di nuovo al relativo adattatore.

La mia comprensione di IObservable & IObserver presta farmi credere che un dio oggetto non sarà necessario - a tutti gli effetti la creazione di una base di conoscenza distribuita di ciò che sta accadendo all'interno delle diverse parti. Un evidente vantaggio di queste interfacce sembra anche che il comunicatore intermedia (cioè l'adattatore) non è più necessaria. Così la distribuzione della conoscenza è in realtà nella classe derivata IObservable. Questo modello deriva intrinsecamente un parlatore / risponditore rapporto -. Nessuna classe di mediazione / arbitrato

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top