Implementare un requisito con un decoratore e garantirne l'utilizzo

3

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?

    
posta Jakob 16.08.2015 - 17:34
fonte

1 risposta

4

Suggerirei di utilizzare un oggetto facciata per nascondere il dettaglio del requisito per il decoratore. La facciata creerebbe semplicemente il servizio e il suo decoratore dietro le quinte, quindi inoltrerà loro le richieste dei clienti. Presentando un'interfaccia più semplice, è più semplice per i clienti utilizzare il servizio, evitare la necessità di un'api factory separata e semplificare l'aggiunta di nuove funzionalità in futuro.

    
risposta data 16.08.2015 - 18:50
fonte

Leggi altre domande sui tag