Qual è l'approccio migliore per disporre di mapping di origini intercambiabili allo stesso sistema di destinazione?

1

Sto creando alcuni middleware tra il nostro ERP e un negozio online basato su cloud. Abbiamo diverse divisioni aziendali che utilizzeranno questo ERP basato su cloud, tuttavia ogni azienda memorizza i propri attributi (come attributi relativi al prodotto) in diversi campi nell'ERP. Per questo motivo, non posso avere un metodo standard per acquisire i dati dall'ERP. Possono associarsi agli stessi campi di destinazione ma non verranno dallo stesso luogo.

Qual è il modo migliore per creare questo in modo da poter avere configurazioni diverse per le diverse divisioni di business?

Penso che il modo migliore per avvicinarsi a questo potrebbe essere avere un AbstractProductTransformer che abbia gli attributi comuni, e quindi avere implementazioni specifiche della divisione aziendale come Business1ProductTransformer e Business2ProductTransformer che implementa IProductTransformer . Avrei quindi un metodo factory che restituirebbe un IProductTransformer .

È questo l'approccio migliore?

    
posta Lock 22.06.2017 - 11:36
fonte

1 risposta

1

Questo sicuramente fornirebbe l'opzione più flessibile, sì. Il AbstractProductTransformer sarebbe un comodo punto base per le nuove implementazioni, ma se si utilizza solo IProductTransformer , si consente anche alle nuove implementazioni di seguire linee guida meno rigide, ad esempio se una possibile implementazione non ha un attributo prontamente disponibile e deve interrogare per questo.

Se ritieni di dover eseguire determinate operazioni spesso, non aver paura di aggiungere un metodo in IProductTransformer e di fornire un comportamento predefinito in AbstractProductTransformer se disponi di tutti gli attributi di base necessari per eseguire esso.

Non fare l'errore di aggiungere metodi o attributi che potrebbero essere specifici per una determinata divisione aziendale e non per altri. Richiede tutti gli attributi e / o i metodi necessari per utilizzare IProductTransformer e nient'altro. Qualsiasi dettaglio specifico dell'implementazione può essere lasciato astratto.

    
risposta data 22.06.2017 - 11:54
fonte

Leggi altre domande sui tag