DataDictCache - 全局缓存设计逻辑详解
DataDictCache - 全局缓存设计逻辑详解
目录
DataDictCache类应用场景
DataDictCache类用于缓存轻量数据到内存中,比如常用基础数据,如:产品类别、单位、货币等数据。用户界面经常使用的参考数据(Lookup Data),比如《应收款》、《应付款》、《帐款查询》等界面使用的货币资料。DataDictCache使用单件模式,只需要下载一次缓存起来,避免重复下载的数据。
基于性能优化,我们要尽量避免重复获取数据,毕竟基础资料是很少改动的,一次性缓存起来使用更方便。
注意:经常变动的基础数据不建议用使用缓存机制,因为有数据不同步的问题。
单例模式(Singleton Pattern)
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
DataDictCache类单例模式应用
C# 全选
private static DataDictCache _Cache = null;
/// <summary>
/// 缓存数据唯一实例
/// </summary>
public static DataDictCache Cache
{
get
{
if (_Cache == null) _Cache = new DataDictCache();
return _Cache;
}
}
Region - 区域资料缓存
C# 全选
/// <summary>
/// 区域资料
/// </summary>
public DataTable Region
{
get
{
DataTable dt = FindFromCache("C_area");
if (dt == null)
{
dt = CommonData.GetArea();
AddToCache(dt.Copy());
}
return dt;
}
}
User - 用户资料缓存
C# 全选
/// <summary>
/// 用户资料
/// </summary>
public DataTable User
{
get
{
DataTable dt = FindFromCache(sys_User._TableName);
if (dt == null)
{
dt = CommonData.GetUsers();
AddToCache(dt.Copy());
}
return dt;
}
}
DataDictCache类使用方法
C# 全选
DataTable dt1 = DataDictCache.Cache.User;
DataTable dt2 = DataDictCache.Cache.Region;
扫一扫加作者微信
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网