Ho molte classi nella mia applicazione responsabili di viste comportamentali, controller, modelli, rete - spesso lo stato di una classe o di un sistema dipende da un'altra e sto trovando le classi che sono principalmente responsabili del comportamento di un sistema diventano inevitabilmente dipendenti o dipendenti di altri sistemi o classi. Ho provato a passare le interfacce delle dipendenze dal costruttore del sistema fino alla classe, dipende da esso e registrando gli eventi su di esso, ma questo diventa estremamente complesso e folle e viola almeno OCP e SRP.
Sto pensando di creare un sistema di eventi a cui tutte le classi di invio e ascolto degli eventi sarebbero accoppiate, fornendo uno strato di riferimento per le classi che richiedono l'interazione con classi di altri sistemi, tuttavia nel peggiore dei casi le classi comportamentali potrebbero essere responsabili comportamento di una classe, gestione degli eventi e degli eventi di dispacciamento, in modo tale da violare anche l'SRP, anche se sono abbastanza sicuro che seguirebbe l'OCP.
C'è una soluzione migliore là fuori? Sto applicando correttamente questi principi? Sono molto titubante nell'usare un sistema di eventi in quanto richiede che la maggior parte delle classi sia strettamente accoppiata ad esso.