/// <summary> /// 工厂方法. /// </summary> /// <param name="state"></param> /// <returns></returns> public IFlyweight Factory(Char state) { // 当一个客户端对象调用一个享元对象的时候, // 享元工厂角色会检查系统中是否已经有一个复合要求的享元对象。 if (cacheDictionary.ContainsKey(state)) { // 如果已经有了,享元工厂角色就应当提供这个已有的享元对象 return cacheDictionary[state]; } else { // 如果系统中没有一个适当的享元对象的话,享元工厂角色就应当创建一个合适的享元对象。 IFlyweight fly = new ConcerteFlyweight(state); cacheDictionary.Add(state, fly); return fly; } }
/// <summary> /// 工厂方法. /// </summary> /// <param name="state"></param> /// <returns></returns> public IFlyweight Factory(Char state) { // 当一个客户端对象调用一个享元对象的时候, // 享元工厂角色会检查系统中是否已经有一个复合要求的享元对象。 if (cacheDictionary.ContainsKey(state)) { // 如果已经有了,享元工厂角色就应当提供这个已有的享元对象 return(cacheDictionary[state]); } else { // 如果系统中没有一个适当的享元对象的话,享元工厂角色就应当创建一个合适的享元对象。 IFlyweight fly = new ConcerteFlyweight(state); cacheDictionary.Add(state, fly); return(fly); } }