Sto lavorando a un progetto Java in cui vogliamo avere plug-in di raccolta dati che raccolgono i dati da elaborare da uno o più moduli di aggregazione dei dati. Tutti i plug-in saranno scritti internamente. Supponiamo ad esempio che abbiamo i plugin di raccolta dati A, B e C e il modulo di aggorizzazione dei dati X. I moduli A, B e amp; C immette i dati in tabelle che sono diverse ma hanno alcuni campi in comune a cui X si preoccupa. A volte i nomi dei campi sono diversi, ma per quanto riguarda l'algoritmo sono "uguali".
Qual è il modo migliore per far funzionare X su queste diverse fonti di dati pur consentendo di integrare un nuovo plug-in di raccolta dati D, oltre alla possibilità di un nuovo modulo di aggregazione Y che funziona su alcuni o tutti i fonti di dati?
Le mie preoccupazioni principali riguardano le dipendenze, ad esempio, se i plug-in di raccolta dati sono a conoscenza dei moduli di aggregazione o viceversa? O nessuno dei due? I plugin di raccolta dovrebbero implementare interfacce che gli aggregatori possono quindi utilizzare e, in caso affermativo, dove dovrebbero essere definite le interfacce?