Sto creando l'architettura per un nuovo progetto incorporato. Il sistema ha alcuni ingressi che vanno a uscite molto diverse. Il modello di lavagna è molto utile per questo (vedi Ascoltatori considerati dannosi: il pattern "Lavagna" ) , poiché disaccoppia il componente di input dai componenti di uscita (una relazione 1-a-N).
Tuttavia, sto lottando con la relazione N-to-1 (in cui un output riceve dati da input molto diversi). Dovrei usare il modello di lavagna lì? E che dire della relazione 1-a-1?
Vantaggi che vedo del modello di lavagna:
- installazione e test separati di sorgenti e ascoltatori
- la lavagna (EventAdmin nel mondo OSGi) può essere monitorata separatamente.
- non esiste una dipendenza in fase di compilazione.
Svantaggi che vedo:
- non esiste un controllo in fase di compilazione sugli eventi (se qualcuno fa un refuso nell'argomento dell'evento o nei dati, sei fregato).
- sovraccarico della lavagna (ho eseguito misurazioni ed è significativo sulla nostra piattaforma)
Non sono abbastanza sicuro su come bilanciare questi trade-off.