Come progettare una comunicazione di oggetti tra 2 software (B2B, così chiamato, comunicazione)?

-1

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.

    
posta Vitor Silva 21.04.2018 - 23:06
fonte

1 risposta

0

La modifica dei parametri potrebbe essere più semplice se si passa un oggetto: la proprietà viene aggiunta, può solo fare riferimento nel codice o nella modifica della firma di un metodo.

La configurazione per le destinazioni potrebbe essere guidata dalle tabelle del database rispetto a un file di configurazione (non è sicuro che sia già presente). In questo modo è facile aggiungere una nuova destinazione.

Sembra che il problema sia che ogni destinazione condivide la stessa firma (Interface), ma diverse implementazioni basate sul tipo. Penso che dover creare una nuova classe per ogni destinazione possa essere necessaria a meno che non sia possibile sfruttare un codice dinamico o una meta-programmazione.

    
risposta data 22.04.2018 - 05:39
fonte

Leggi altre domande sui tag