Esiste una cattiva pratica nell'ingegneria del software in cui un singolo dato è detenuto in base al valore in più punti.
Ad esempio, in un FPS, la posizione del giocatore potrebbe essere detenuta dalla classe AI, dalla classe di input, dalla classe principale e dal motore grafico.
Possono sorgere diversi problemi:
- Problemi di sincronizzazione
- Maggiore complessità del codice per bloccare le variabili fino a quando tutte le classi sono state aggiornate
- Maggiore complessità del codice per fornire setter su tutte le classi
- Diventa molto più difficile se ci sono più punti di input per assicurarti che ogni input e output sia aggiornato ogni volta che cambia il codice
Ovviamente, la migliore pratica sarebbe quella di avere una singola classe che contenesse tutte le informazioni sul giocatore e che verrebbe referenziata, non esclusa, dall'altra classe.
Voglio parlare di questa cattiva pratica, e sono abbastanza sicuro che abbia un nome, ma non riesco a trovare nulla. Ho sentito usare i termini "duplicazione dati" e "mirroring dati", ma non sono sicuro che siano corretti. Qualcuno può chiamare questo termine?