Come semplificare la progettazione e rimuovere la duplicazione nell'architettura a strati java?

1

Ho la seguente struttura di progetto (semplificata):

  • dominio
  • dto
  • Visualizza

Viene mantenuto il modello domain . Le classi dto vengono utilizzate per passare i dati da domain a view . E in view ho un controller e una manciata di * req, * res classi per passare i dati via HTTP. Quindi ci sono 3 classi (in modello, dto e vista) per esprimere la stessa cosa.

Il problema è che ho avuto un SalesEntry e PurchaseEntry nel modello. Entrambe le classi erano esattamente identiche, quindi avevo due entità ma solo un EntryDto insieme a EntryReq e EntryRes . Tutto bene. Ora, ho scoperto che ho bisogno di aggiungere alcuni campi, ma solo a PurchaseEntry . Così ho aggiunto un po 'di astrazione e raddoppiato le classi in ogni livello . Questo è stato un grosso costo. Dove ho sbagliato e come dovrebbe essere fatto correttamente?

In lingue diverse da java probabilmente passerei alcune mappe qua e là, ma in java in particolare ho bisogno di avere una classe concreta in ogni livello. Come semplificarlo?

    
posta Opal 17.10.2018 - 09:47
fonte

0 risposte

Leggi altre domande sui tag