Sto facendo un gioco e ho diverse carte che vengono create durante il gioco. Ogni carta ha bisogno di alcune informazioni, che sono condivise tra carte dello stesso tipo.
Quindi ho una classe CardInfo, che tiene tra le altre cose un nome. Ora sto cercando il modo migliore per ottenere il CardInfo esistente in base al nome o se non ne esiste ancora uno che sia stato creato in quel momento.
Al momento ho provato due modi, che sono praticamente uguali.
Per prima cosa ho avuto un CardInfoManager
, che conteneva un elenco di tutti CardInfo
noti, e quando è stato chiesto per uno, ha verificato se ne avesse uno, e lo ha restituito o creato uno nuovo se non ne esisteva nessuno. Ho questo come una classe completamente statica e come un singleton con un metodo Instance
.
Ho anche fatto un'alternativa, in cui il mio CardInfoManager
(la versione statica) è fondamentalmente all'interno della mia classe CardInfo
. Quindi CardInfo aveva un metodo ByName
, che poi controllava un elenco statico in CardInfo
. Questo è bello perché posso rendere privato il cosntructor, assicurandoti che le informazioni non vengano mai create altrove.
Quindi mi stavo chiedendo, qual è il modo migliore per farlo? C'è un buon modello per questo tipo di funzionalità?
Sto lavorando in c #.