"Minimizza lo stato globale mutabile" è un principio di progettazione del programma più o meno accettato. Il motivo spesso citato è che avere uno stato globale può influenzare due componenti che non sono apparentemente non correlati. In altre parole, uno stato globale mutante di un componente non avrebbe idea di chi altro sta effettuando poiché non sa quale altro componente ha una dipendenza da quello stato globale.
In modo tangenziale, un modello che è spesso consigliato per la creazione di software disaccoppiato è il modello del bus eventi in cui un componente in grado di generare eventi lo trasmette su un bus e i componenti interessati a determinati eventi si iscrivono sullo stesso bus per ricevere tali eventi. p>
La mia domanda è - l'argomento che vale per lo stato globale vale anche per il caso del bus degli eventi? Dopotutto, durante la trasmissione di un evento, non ho idea di chi altro stia rompendo poiché non ho modo di sapere quali altri componenti lo stanno ascoltando. Inoltre, proprio come nel caso dello stato globale, la lettura del codice potrebbe non rendere anche le dipendenze dei componenti su una certa anche nel sito di trasmissione.
L'unica differenza tra i due che posso pensare è che un evento è uno stato transitorio rispetto a uno stato globale sotto forma di variabili statiche o oggetti condivisi, che potrebbero essere persistenti.