In una libreria condivisa ho una funzione che è ampiamente utilizzata. Sto implementando un requisito per la funzione di sovrascrivere il suo comportamento quando le entità si trovano in uno stato specifico.
Ho deciso di implementare questo requisito con il modello decoratore.
Tutti i miei programmi di cliniche contro un'interfaccia per questo servizio e la maggior parte di essi usa un contenitore IoC, altri usano l'iniezione di bastardo.
Come dovrei costringere o guidare i clienti a usare il mio decoratore? Senza il mio decoratore il servizio non farebbe il nuovo requisito per il sistema.
Stavo pensando di avere l'implementazione del servizio interna e una fabbrica pubblica per la creazione del servizio come interfaccia, ma la mia fabbrica non poteva usare gli stili di vita del contenitore IoC.
Qualche suggerimento?