当前位置: 首页 > 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自动化测试实战案例
  • 专家分析丨乌美签署矿产协议,展现美外交困境下的无奈
  • 乌方公布矿产协议详情:未提债务义务,包含美再援助条款
  • 证监会:坚决拥护党中央对王建军进行纪律审查和监察调查决定
  • 中国防疫队深入缅甸安置点开展灾后卫生防疫工作
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • 对话|贝聿铭设计的不只是建筑,更是生活空间