Пример #1
0
 public static SelectDefault GetInstance()
 {
     if (_instance == null)
     {
         _instance = new SelectDefault();
     }
     return(_instance);
 }
Пример #2
0
    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());
    }