コード例 #1
0
 /// <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;
     }
 }
コード例 #2
0
 /// <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);
     }
 }