Come scambiare tra 2 fornitori di terze parti quando entrambi implementano eventi diversi?

-1

Ho 2 provider di terze parti, entrambi svolgono una funzione simile (potrebbe essere la registrazione, la messaggistica, ecc.) e entrambi hanno eventi a cui il cliente deve iscriversi.

Voglio sapere quali sono i modelli oi metodi di progettazione di cui ho bisogno in modo da poterli sostituire uno con l'altro senza modificare alcun codice. La mia preoccupazione principale è come astrarre gli eventi. Un fornitore avrà determinati eventi che necessitano di essere collegati ai gestori con determinate firme e l'altro ne avrà uno proprio.

Dovrei avere qualche tipo di dizionario dei delegati che viene esposto tramite un campo sull'interfaccia?

Uso C #.

    
posta user197619 10.05.2017 - 10:14
fonte

2 risposte

1

Scrivi il tuo Wrapper (chiamato anche Adapter) a tale scopo, una classe per ogni oggetto da incartare. Il resto del tuo programma è costruito sull'interfaccia della tua classe Wrapper.

    
risposta data 10.05.2017 - 11:00
fonte
1

Crea un'interfaccia wrapper con due implementazioni, una per RabbitMQ e un'altra per Kafka. Ciò includerebbe entrambi gli eventi con metodi diversi. In questo modo puoi scambiare i servizi di messaggistica e usarli indistintamente. se aggiungi una classe di fabbrica puoi istanziare quella che desideri per ogni caso o addirittura renderla una questione di configurazione; risparmiando così la necessità di ricompilazione.

    
risposta data 10.05.2017 - 11:09
fonte

Leggi altre domande sui tag