鸿蒙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();}
}