public void showB() { Console.WriteLine("--------- 开始showB ----------"); keyModel a = FlyWeightModle.GetKey(E_key.A); keyModel b = FlyWeightModle.GetKey(E_key.B); keyModel c = FlyWeightModle.GetKey(E_key.C); a.show(); b.show(); c.show(); }
static public keyModel GetKey(E_key str) { keyModel keyModel = null; if (dictionary.ContainsKey(str)) { return(dictionary[str]); } else { lock (o) { if (dictionary.ContainsKey(str)) { return(dictionary[str]); } else { switch (str) { case E_key.A: keyModel = new keyA("A"); dictionary[E_key.A] = keyModel; break; case E_key.B: keyModel = new keyA("B"); dictionary[E_key.B] = keyModel; break; case E_key.C: keyModel = new keyA("C"); dictionary[E_key.C] = keyModel; break; default: throw new Exception(); } return(keyModel); } } } }