HarmonyOS 类实现方案的问题

下面两种实现方式有什么异同,推荐使用哪种呢

1、通过单例暴露出去

2、通过new出来一个实例暴露出去

export class GlobalContext {
  private static instance: GlobalContext;
  private _objects: Map<string, Object | undefined>;

  private constructor() {
    this._objects = new Map<string, Object | undefined>();
  }

  public static getContext(): GlobalContext {
    if (!GlobalContext.instance) {
      GlobalContext.instance = new GlobalContext();
    }
    return GlobalContext.instance;
  }

  getObject(key: string): Object | undefined {
    return this._objects.get(key);
  }

  setObject(key: string, objectClass: Object | undefined): void {
    this._objects.set(key, objectClass);
  }

  deleteObject(key: string): void {
    this._objects.delete(key);
  }
}



import { hilog } from '@kit.PerformanceAnalysisKit';

class Logger {
  private domain: number;
  private prefix: string;
  private format: string = "%{public}s, %{public}s";

  constructor(prefix: string) {
    this.prefix = prefix;
    this.domain = 0xFF00;
  }

  debug(...args: Object[]): void {
    hilog.debug(this.domain, this.prefix, this.format, args);
  }

  info(...args: Object[]): void {
    hilog.info(this.domain, this.prefix, this.format, args);
  }

  warn(...args: Object[]): void {
    hilog.warn(this.domain, this.prefix, this.format, args);
  }

  error(...args: Object[]): void {
    hilog.error(this.domain, this.prefix, this.format, args);
  }
}

export default new Logger('[iTalentApp]');
HarmonyOS
2024-12-23 16:06:45
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

方法一可以避免频繁创建对象,使用方法一可以省去创建对象实例的步骤,使得代码更加简洁和高效;通过new获取对象,这种方法便于管理已创建的对象,对象生命周期清晰。

推荐使用方法一,使用更为方便。

分享
微博
QQ
微信
回复
2024-12-23 18:39:33
相关问题
HarmonyOS 自定义注解实现方案
1341浏览 • 1回复 待解决
HarmonyOS abstract抽象实现问题
804浏览 • 1回复 待解决
HarmonyOS flutter问题
957浏览 • 1回复 待解决
HarmonyOS bind(this)问题替代方案
2021浏览 • 1回复 待解决
HarmonyOS 工具自定义弹窗方案咨询
1058浏览 • 1回复 待解决
HarmonyOS 全局loading实现方案
1229浏览 • 1回复 待解决
配置管理多线程方案
3100浏览 • 1回复 待解决
HarmonyOS 列表实现方案
1135浏览 • 1回复 待解决
HarmonyOS IOC实现方案
1285浏览 • 1回复 待解决
HarmonyOS 加密和解密方案实现
1166浏览 • 1回复 待解决
HarmonyOS List瀑布流实现方案
1161浏览 • 1回复 待解决
HarmonyOS对于权限问题咨询
1023浏览 • 1回复 待解决
HarmonyOS NFC方案如何实现
1039浏览 • 1回复 待解决
HarmonyOS 效果实现方案
1918浏览 • 1回复 待解决
HarmonyOS导出多个问题
1569浏览 • 1回复 待解决
HarmonyOS代码规范扫描方案实现
1015浏览 • 1回复 待解决
HarmonyOS 点赞动画实现方案
1372浏览 • 1回复 待解决
瀑布流场景推荐实现方案
3146浏览 • 1回复 待解决
HarmonyOS 卡证识别问题
1225浏览 • 1回复 待解决
HarmonyOS color argb工具问题
1330浏览 • 1回复 待解决
HarmonyOS 发现页一镜到底方案实现
987浏览 • 1回复 待解决
HarmonyOS 计算富文本宽高实现方案
1198浏览 • 1回复 待解决
HarmonyOS 电影院选座位实现方案
2322浏览 • 1回复 待解决
HarmonyOS 应用多主题实现方案
1521浏览 • 1回复 待解决