Attualmente sto lavorando su una grande applicazione (un centinaio di librerie, diverse migliaia di classi) con diversi punti di ingresso (sito Web MVC, servizi web, alcuni agenti in background, scheduler di lavoro ...).
La maggior parte di questi punti di ingresso utilizza una parte non trascurabile dei servizi di base (direi almeno il 50% almeno).
So da fonti credibili che le radici di composizione non devono essere riutilizzate.
Per quanto io sia d'accordo con l'intera idea, nel mio caso particolare, ogni radice di composizione ha molto (e intendo dire) di codice duplicato, e sembra una cosa brutta, come so per certo che la maggior parte le interfacce / i collegamenti impl resteranno gli stessi indipendentemente dal punto di ingresso per almeno un po 'di tempo.
Potrei decidere di non preoccuparmi, ma questa situazione significa che ogni volta che voglio aggiungere una nuova associazione per una nuova classe, devo cambiare forse nove diverse radici di composizione.
Alla fine, ho fornito parti di radici di composizione preconfigurate direttamente nei progetti che gestiscono le implementazioni (almeno questo non cambia nulla quando si tratta di accoppiamento lento), quindi devo solo chiamarle dalle radici della composizione globale quando bisogno di loro, ma questo non sembra un approccio corretto.
Qualcuno ha un'alternativa migliore?