当前位置: 首页 > news >正文

鸿蒙NEXT开发全局上下文管理类(ArkTs)

type CacheValue = string | number | boolean | object;/*** 全局上下文管理类,用于存储和管理全局数据。* author: 鸿蒙布道师* since: 2025/04/15*/
export class GlobalContext {private static instance: GlobalContext;private _objects = new Map<string, CacheValue>();// 私有构造函数,防止外部实例化private constructor() {}/*** 获取全局上下文实例(单例模式)。* @returns 全局上下文实例*/public static getContext(): GlobalContext {if (!GlobalContext.instance) {GlobalContext.instance = new GlobalContext();}return GlobalContext.instance;}/*** 存储数据到缓存中。* @param key - 数据键名* @param value - 数据值*/public set<T extends CacheValue>(key: string, value: T): void {this._objects.set(key, value);}/*** 从缓存中获取数据。* @param key - 数据键名* @param defaultValue - 如果数据不存在时的默认值* @returns 缓存中的数据或默认值*/public get<T extends CacheValue>(key: string, defaultValue?: T): T {return this._objects.has(key)? (this._objects.get(key) as T): (defaultValue as T);}/*** 检查缓存中是否存在指定的数据。* @param key - 数据键名* @returns 如果存在返回 true,否则返回 false*/public has(key: string): boolean {return this._objects.has(key);}/*** 从缓存中移除指定的数据。* @param key - 数据键名*/public remove(key: string): void {this._objects.delete(key);}/*** 清空所有缓存数据。*/public clear(): void {this._objects.clear();}
}

代码如下:

type CacheValue = string | number | boolean | object;/*** 全局上下文管理类,用于存储和管理全局数据。* author: 鸿蒙布道师* since: 2025/04/15*/
export class GlobalContext {private static instance: GlobalContext;private _objects = new Map<string, CacheValue>();// 私有构造函数,防止外部实例化private constructor() {}/*** 获取全局上下文实例(单例模式)。* @returns 全局上下文实例*/public static getContext(): GlobalContext {if (!GlobalContext.instance) {GlobalContext.instance = new GlobalContext();}return GlobalContext.instance;}/*** 存储数据到缓存中。* @param key - 数据键名* @param value - 数据值*/public set<T extends CacheValue>(key: string, value: T): void {this._objects.set(key, value);}/*** 从缓存中获取数据。* @param key - 数据键名* @param defaultValue - 如果数据不存在时的默认值* @returns 缓存中的数据或默认值*/public get<T extends CacheValue>(key: string, defaultValue?: T): T {return this._objects.has(key)? (this._objects.get(key) as T): (defaultValue as T);}/*** 检查缓存中是否存在指定的数据。* @param key - 数据键名* @returns 如果存在返回 true,否则返回 false*/public has(key: string): boolean {return this._objects.has(key);}/*** 从缓存中移除指定的数据。* @param key - 数据键名*/public remove(key: string): void {this._objects.delete(key);}/*** 清空所有缓存数据。*/public clear(): void {this._objects.clear();}
}


 

相关文章:

  • 进程的查看与属性
  • java分页实例
  • Python + Playwright:编写自动化测试的避坑策略
  • Typora更改快捷键 markdown语法大全
  • 关闭谷歌浏览器(Google Chrome)的自动更新可以通过以下方法实现。具体操作步骤取决于你的操作系统。
  • C#VIN 码识别接口:汽车后市场的智能数据管理利器
  • 微服务即时通信系统---(四)框架学习
  • 体系结构论文(七十一):Quantifying the Impact of Data Encoding on DNN Fault Tolerance
  • 从JSON到SQL:基于业务场景的SQL生成器实战
  • Kubernetes(K8S)内部功能总结
  • 迁移python环境
  • 在 Redis 中存储对象类型的数据时,选择hash还是string?
  • 企业级Active Directory架构设计与运维管理白皮书
  • AI在代码Review中的应用试验与推广策略
  • word中插入图片显示不完整,怎么处理让其显示完整?
  • 智能系统:中钧科技的秘密武器
  • css hover 实现鼠标放上去后略微放大的效果
  • Kotlin学习记录2
  • ShenNiusModularity项目源码学习(17:ShenNius.Admin.Mvc项目分析-2)
  • selenium自动化测试实战案例
  • 商务部:中国加快推进服务业扩大开放综合试点为世界注入更多确定性
  • 著名作家、中国艺术研究院原常务副院长曲润海逝世
  • 全球前瞻|中国印尼举行首次“2+2”部长级会议,美乌将签署矿产协议
  • “我们一直都是面向全世界做生意”,“世界超市”义乌一线走访见闻
  • 视觉周刊|第五届中国国际消费品博览会展现全球合作新格局
  • 又有多地推进产科整合