Sto lavorando a un progetto abbastanza grande che prevede il disegno 3D e voglio aggiungere alcuni visualizzatori (ad esempio, per vedere i riquadri di delimitazione degli oggetti) per semplificare il debugging. Tuttavia, sto avendo un problema nel decidere come procedere.
Un'opzione sarebbe creare una funzione pubblica per disegnare i visualizzatori e chiamare questa funzione quando abilito il debug dall'interfaccia utente. Ciò avrebbe il vantaggio di non modificare le funzioni esistenti, ma di estendere la classe con una nuova funzione. Lo svantaggio sarebbe "creare dipendenze", come ha detto uno dei miei colleghi, avremmo bisogno di modificare la classe base e tutte le classi derivate per aggiungere questa funzione.
Un'altra opzione sarebbe quella di modificare la funzione di disegno esistente in modo che gestisca il disegno dei visualizzatori. Ciò nasconde i dettagli di implementazione, ma mi sembra anche che rende il codice meno modulare.
Ancora un'altra opzione è l'estensione della classe, l'aggiunta del visualizzatore nella funzione di disegno e lo swapping delle classi quando il debug è abilitato. I mixin sarebbero di aiuto, ma il C ++ non lo supporta.
Quale sarebbe l'approccio migliore per farlo? Sto cercando una soluzione modulare e rispetta i principi SOLID.