È normale per me, quando faccio lo sviluppo web, copiare gli attributi dalle mie classi modello all'altra classe che verrà inviata al client. Di solito, con una classe che accetta un modello ed estrae le informazioni necessarie, questo è sufficiente (suppongo un adattatore, suppongo), ma a volte non è così facile.
In alcuni sistemi, per motivi diversi, ho bisogno di inviare una serie di attributi diversi, ed è qui che la semplicità sembra scomparire.
Con il mio approccio abituale finisco con un sacco di classi molto simili tra loro, solo perché uno è per essere usato in un canale che richiede alcune informazioni e gli altri per i canali che richiedono informazioni molto simili. Ma non può essere la stessa somma dei due perché prestazioni o sicurezza. (Quando dico canali è perché potrebbe essere serializzato usando json o xml, o usato in altri protocolli, o semplicemente visualizzato come html dal server.)
La domanda è: Esiste uno schema che consente trasformazioni diverse di un oggetto (che potrebbe aggregare altri oggetti) a seconda del contesto utilizzato? (senza troppa duplicazione del codice)
Caso di studio: in un gioco di carte distribuito (come il poker), ho bisogno di inviare ad ogni utente il punteggio, il nome dei giocatori, le carte che sono state giocate e le carte che ha ha in mano. Ma quando termina il gioco devo anche spedire le carte nelle mani degli altri giocatori. E in un'altra vista del gioco ho bisogno di inviare solo il punteggio e il nome dei giocatori.
Mi dispiace per il mio inglese, non è la mia prima lingua (e l'idea che sto cercando di comunicare sembra un po 'complessa per me).