Sto cercando di costruire una struttura di oggetti in cui gli attori principali possano essere scambiati liberamente. Al momento l'ho fatto creando una classe base astratta da cui tutti i miei attori possono essere derivati. Un motivo chiave per l'utilizzo di una classe astratta su un'interfaccia era che c'era un piccolo bit di codice comune che tutte le classi derivate dovrebbero usare.
Il mio obiettivo è creare un sistema che possa essere facilmente esteso da altri sviluppatori (un giorno) che condividono alcune logiche comuni e che gli oggetti derivati possano essere interscambiati senza interruzioni.
Ho avuto alcuni problemi con il modo in cui ho progettato il sistema. Uno è che non è stato facile testare i consumatori del mio framework. Ma quello a cui sono più interessato a risolvere al momento è che alcune delle classi derivate devono implementare IDisposable perché contengono oggetti che devono essere eliminati.
La soluzione migliore che ho trovato al momento è che la classe astratta implementa IDisposable anche se non lo richiede e anche alcune delle altre classi derivate non lo richiedono. Mi rendo conto di avere alcuni problemi fondamentali con il modo in cui ho modellato i miei oggetti e sto cercando di trovare il modo migliore per farlo.
Tuttavia, sono ancora curioso di sapere qual è il modo migliore per implementare in modo condizionale IDisposable? Oppure ho solo un serio problema di progettazione che deve essere risolto e sto cercando di risolvere un problema che non sarà più un problema con il modello corretto?