private static void ShowHello() { Console.WriteLine("**********李四********"); BaseWord h = FlyweightFactory.GetWord(WordType.H); BaseWord e = FlyweightFactory.GetWord(WordType.E); BaseWord l = FlyweightFactory.GetWord(WordType.L); BaseWord o = FlyweightFactory.GetWord(WordType.O); Console.WriteLine("{0}{1}{2}{3}{4}", h.Display(), e.Display(), l.Display(), l.Display(), o.Display()); }
public static BaseWord GetWord(WordType wordType) { BaseWord baseWord = null; if (_BaseWordDictionary.ContainsKey(wordType))//双if+lock { baseWord = _BaseWordDictionary[wordType]; } else { lock (GetWord_Lock) { if (_BaseWordDictionary.ContainsKey(wordType)) { baseWord = _BaseWordDictionary[wordType]; } else { switch (wordType) { case WordType.E: baseWord = new E(); break; case WordType.L: baseWord = new L(); break; case WordType.V: baseWord = new V(); break; case WordType.N: baseWord = new N(); break; default: throw new Exception("wrong wordType"); } _BaseWordDictionary[wordType] = baseWord; } } } return(baseWord); }
//private static BaseWord e1 = new E(); //private static BaseWord l = new L(); //private static BaseWord v = new V(); //private static BaseWord n = new N(); /// <summary> /// 张三 /// </summary> private static void Show() { Console.WriteLine("**********张三********"); //BaseWord e1 = new E(); //BaseWord l = new L(); ////BaseWord e2 = new E(); //BaseWord v = new V(); ////BaseWord e3 = new E(); //BaseWord n = new N(); BaseWord e1 = FlyweightFactory.GetWord(WordType.E); BaseWord l = FlyweightFactory.GetWord(WordType.L); //BaseWord e2 = new E(); BaseWord v = FlyweightFactory.GetWord(WordType.V); //BaseWord e3 = new E(); BaseWord n = FlyweightFactory.GetWord(WordType.N); Console.WriteLine("{0}{1}{2}{3}{4}{5}", e1.Display(), l.Display(), e1.Display(), v.Display(), e1.Display(), n.Display()); //e2.Display(),v.Display(), //e3.Display(),n.Display()); }