代码改变世界

为你的工厂添加一个缓存

2011-04-29 08:52  LuzJoy  阅读(2129)  评论(16)    收藏  举报

        Petshop虽然简单,但是他的架构思想却很经典-----工厂为大家返回DAL。无意中在接触一个项目中对他做了优化,为工厂中添加一个缓存。

      首先定义缓存的几个方法,当然你也可以将其放到一个帮助类中。对缓存的操作很多,这里我只选择几个重要的方法。

/// 
/// 设置某缓存的值。
/// 
/// 缓存的键
/// 缓存的值
public static void SetCache(string CacheKey, object objObject)
{
    Cache objCache = HttpRuntime.Cache;
    objCache.Insert(CacheKey, objObject);
}

 

/// 
/// 取得某缓存的值
/// 
/// 缓存的键
/// 缓存的值
public static object GetCache(string CacheKey)
{
   Cache objCache = HttpRuntime.Cache;
   return objCache[CacheKey];
}

        这是我们用到的几个方法,缓存帮助的操作类请点击在这里下载。

        下面是在工厂中的应用:

public static object CreateObject(string path, string CacheKey)
{
    //从缓存读取
    object objType = DataCache.GetCache(CacheKey);
    
    //如果读取为空
    if (objType == null)
    {
         try
         {
              //反射创建
              objType = Assembly.Load(path).CreateInstance(CacheKey);
              // 写入缓存
              DataCache.SetCache(CacheKey, objType);
         }
         catch{ }
    }
    return objType;
}