DataDictCache | 全局缓存设计逻辑详解|C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/02/23 17:08:20

DataDictCache | 全局缓存设计逻辑详解|C/S开发框架

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;
 

DataDictCache | 全局缓存设计逻辑详解|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信

C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务





扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇