Design della classe Java

1

Devo inviare una risposta JSON. Io uso la libreria di jackson per convertire la classe in json. Ho una classe java di base alla quale ho bisogno di aggiungere altri campi per creare la mia risposta JSON. Sono venuto con due idee.

  1. Estendere la classe java principale.
  2. Per avere un'altra classe con l'oggetto della classe core come costruttore.

Le preoccupazioni su due metodi sono:

  1. Ho un core layer che restituisce il core java object dal database. Devo chiamare un metodo per restituire il mio oggetto di classe estesa. Nel core layer, devo creare l'istanza della classe estesa e restituire
  2. Posso facilmente ottenere una risposta JSON con questo, ma per ogni oggetto, ci sarà un tipo di wrapper di oggetto creato.

Gentilmente guidami per avere un modello di design per questo

    
posta ksv 30.11.2018 - 05:39
fonte

1 risposta

3

Ero molto contento di questo problema. Ma fortunatamente, ha una risposta ben definita: vai con la tua seconda opzione, e vai avanti e fai un'altra lezione.

Questo sembra meno ovvio perché hai paura di ripeterti; tuttavia, ti assicuro che disporre di un DTO separato è un codice ripetuto non . Questo perché queste due classi hanno scopi completamente diversi e occupano diversi domini. Possono sembrare simili, ma queste somiglianze sono casuali, non causali.

Che cosa succede se il client che utilizza il JSON ha bisogno di uno dei campi rimossi per risparmiare sulle prestazioni perché è troppo grande? Non puoi rimuovere quel campo dall'oggetto principale, quindi ti troverei in una situazione molto complessa se hai usato l'opzione di ereditarietà.

Non aver paura di aggiungere più classi dove è necessario; rende le cose più semplici e riduce effettivamente la quantità totale di codice.

    
risposta data 30.11.2018 - 14:38
fonte