Ho letto i post più importanti di Stackoverflow e SE e in tutto il sito si dice quanto siano brutti i singleton, ma non sono sicuro di come riscrivere il mio codice.
A partire da ora ho due progetti che si legano a un gameEngine che ognuno ha una classe singleton per accedere al contenuto:
-
Singleton per recuperare / creare un'istanza di una griglia spaziale 3d e archiviarla come istanza attiva. Futher consente di iniettare propri tipi di dati conformi a un'interfaccia e quindi può essere de / -serializzato con attributi personalizzati in quell'istanza attiva. Aggiunta e rimozione di oggetti dall'istanza attiva e metodi collettivi per la stessa cosa.
-
Singleton per il ciclo AI principale: Aggiunta / rimozione di unità dal ciclo AI principale, Iniezione / sostituzione delle aggiunte alle principali StateMachineProcesses che pilotano l'intelligenza artificiale. Più significativo, quello che odio di questo secondo: Ha bisogno di accedere all'istanza della griglia attiva da Singleton # 1 come uno degli aspetti principali dell'IA è la consapevolezza di ciò che lo circonda e tutti gli oggetti del mondo sono memorizzati nel database del progetto numero uno .
Come dovrebbe esserci sempre solo un'istanza attiva di queste due cose, i singleton sono un'eccezione o c'è un modo migliore per ridisegnare l'intera cosa?