DataDictCache - 全局缓存设计逻辑详解


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;
 

内容图片-底图-高效开发.追求卓越-开发框架文库
C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信

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



版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:设置GridControl.EmbeddedNavigator属性可隐藏按钮和记录数提示
下一篇:dalMenu.cs,手工启动事务需要在构造器内指定参数_UserManualControlTrans = true
评论列表

发表评论

评论内容
昵称:
关联文章

DataDictCache - 全局缓存设计逻辑详解
Loginer 类详解全局用户登录对象
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
公共数据缓存和更新机制这块功能好扩展吗?
C#调用C++编译的DLL详解
主窗体状态栏(StatusBar)介绍 - MiniFramework蝇量框架 - Winform框架
SQL Server 存储过程详解
开发框架旗舰版保存数据并重新刷新CurrentBusiness前端缓存数据
开发应用-观察者模式之C#实现缓存数据更新
C#.NET 6 实现全局异常处理
DevExpress XtraReport 开发指南-单表报表设计详解(C#)
FastReport for.Net开发指南-单表报表设计详解
C/S结构快速开发平台三层逻辑架构 (3-Tier Logic Architecture)
C#.NET开发框架的业务主键和逻辑主键定义
基于标准三层逻辑扩展的C/S架构Winform开发平台(原创)
主窗体体系架构 / 逻辑架构 - MiniFramework蝇量框架 - Winform框架
C#中处理全局鼠标及键盘勾子
服务端增加WCF服务全局异常处理机制
怎样对软件项目进行逻辑分层分割模块(类库)?
删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据