public static SelectDefault GetInstance() { if (_instance == null) { _instance = new SelectDefault(); } return(_instance); }
private static SelectManager GetSelectManager(string phase) { //Questa soluzione anzi che il case perché il case, come era prima, funzionava solo con costanti. //Non volevo lasciare scritte delle costanti del tipo "Attacco" per dire il nome della fase dell'attackManager. //Altra soluzione poteva essere una cascata di if oppure scegliere una convenzione di nomi e andare di reflection. //La mappa mi sembrava il compromesso migliore tra l'efficienza del case e la flessibilità degli if. //La pecca più grande è questo primo if che serve ad inizializzare la mappa ed evita corse critiche //Al momento mi sembra comunque un prezzo accettabile. //Aggiungere alla factory dei manager => modificare initMap istruendola con la coppia (fase,Manager) if (_map.Keys.Count == 0) { InitMap(); } if (_map.ContainsKey(phase)) { return(_map[phase]); } return(SelectDefault.GetInstance()); }