Ho un sistema con valori di stato configurabili, come BoxCount, "Numero di caselle visibili sullo schermo". Se sto usando alcuni set di modelli pesanti (come MVC) che impongono la creazione di molteplicità di classi, e se seguo schemi di progettazione, trovo spesso il caso in cui esiste un albero di oggetti come questo:
- CModelBox = una classe del modello che si occupa del numero di riquadri
- CViewBox = una classe di visualizzazione che si occupa di mostrare il conteggio delle caselle
- CControllerBox = una classe controller che si occupa di alcuni conteggi di scatole.
Se ognuno dei precedenti aveva un campo (una variabile membro) chiamato Count, e quell'unico fatto (quante scatole?) viene ripetuto nell'implementazione, e quindi in qualche modo deve essere "aggiornato" in ogni modo, è c'è un nome per questo problema? È conosciuto con qualche nome, come anti-pattern o con qualche altro nome formale che potrebbe aiutarmi a fare delle ricerche su come le persone identificano e correggere questi problemi nei loro progetti applicativi?
Il problema molto specifico che osservo più spesso è che ogni volta che hai due campi invece di uno, puoi avere una differenza, e quindi la domanda è, la differenza ha un significato, o è un incidente. Se è una differenza accidentale (e permanente piuttosto che temporanea), un errore nel mantenere le cose in sincrono, allora è un bug in agguato.
Aggiornamento: Sospetto che le persone che costruiscono sistemi in base ai principi OOP "SOLID" potrebbero avere un nome definitivo per questo problema, e se lo fanno, questa è la particolare risposta che voglio. Questa non è una vera opinione, dovrebbe essere supportata da alcune citazioni da una fonte SOLID OOP, come lo zio Bob, o uno dei suoi seguaci.