C'è un 1 ° sofwtare (s1) che genera i dati e poi c'è uno o più software (s2, s3) che riceveranno i dati (oggetti), sulla base di azioni preconfigurate che definiscono il tipo di dati da trasmettere. Un middleware (api) ha bisogno di ottenere i dati da s1 e convertirli in una struttura s2 o s3 a seconda della configurazione. Il fatto è che ci sono alcune convalide durante la conversione che dipende dalla destinazione (s2 o s3) dei dati. L'obiettivo è supportare un'ampia gamma di software di destinazione. Il modello Adapter sembra essere il modo migliore per riutilizzare gran parte del codice per diverse azioni o destinazioni, ma temo che la gestione di esso in futuro possa essere anche difficile e complessa. C'è qualche altro approccio che rende più facile implementare o mantenere, come parti separate possibili? cosa mi manca?
PS: ho ereditato l'API corrente, ma sto cercando di convincere i miei colleghi a refactirlo, e ho bisogno di alcuni argomenti, i migliori esempi,
Grazie per il tuo aiuto!
Quello che ho provato:
Finora ho usato le interfacce, che derivano il convertitore di (s1 o s2), con una factory istanza che restituisce il istanza corretta della configurazione corrente. Overal sembra fare il trucco, ma non è facile mantenere le diverse azioni (tipo di dati dell'oggetto) in quanto ha bisogno di un metodo per ogni conversione di tipo di oggetto, in ciascuna delle classi di destinazioni. Inoltre, quando un parametro cambia, sono costretto ad aggiornare l'interfaccia e ogni altro metodo che la applica. Questo sembra piuttosto utile da mantenere in futuro.