Volevo esaminare i modelli di comunicazione / disaccoppiamento e come migliorarli.
Il mio attuale approccio è di avere un comandante centralizzato nella forma di un bus eventi e farlo essere quello che risponde alla maggior parte delle interazioni esterne, come l'interfaccia utente o la rete. Ogni volta che si apre un nuovo evento, il callback del ricevitore invia un segnale al bus, che lo diffonde ai ricevitori. Il messaggio contiene tutti gli elementi contestuali necessari per rispondere a quel segnale, rendendo l'orchestratore ricevente che ha solo a che fare con l'elaborazione e il rendering di tali modifiche.
Example: my program is connected through a socket to a live stocks feed. Whenever a new stock arrives, it parses the payload into an object and signals the bus with it. My current window is subscribed for that event and whenever it gets signaled, it looks for the event payload in its internal list and applies any value changes on screen.
Una tecnologia nuova e brillante che sta ottenendo attenzione ultimamente è Reattiva. Se ho capito bene, in questo nuovo paradigma ogni informazione è considerata un flusso nel tempo, in cui abbiamo una componente osservabile a cui ci iscriviamo, e ogni volta che viene segnalata puoi semplicemente elaborarla. Questa informazione osservabile può essere referenziata (iniettata?) In tutte le classi che desideri.
Ci sono dei vantaggi da una prospettiva architettonica dall'usare ReactiveX con Bus?