Sto affrontando un periodo difficile decidere se avere due classi differenti nel sistema, una per mantenere invariata la classe e altre per la serializzazione (de /) o semplicemente avere una singola classe che faccia entrambe le cose.
Il progetto su cui sto lavorando è in Java e per la serializzazione (de /) sto usando i mapping di Jackson.
Pro di mantenere 2 classi:
- Altro In linea con il principio di responsabilità unica.
- Migliore controllo dell'invarianza della classe (può rendere le cose Immutabili, più facile avere classi thread-safe ...)
- (De /) La serializzazione non comporta annotazioni complesse e funziona facilmente con tutte le librerie che hanno integrato Jackson in esse. (Ho osservato che AWS SWF SDK non onora correttamente le annotazioni)
Contro di mantenere 2 classi:
- Principio di Violating Do not Repeat Yourself, dovendo mantenere i campi nelle due classi e le funzioni di conversione di andata e ritorno in sincrono.
Quale approccio dovrei adottare qui?