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 自定义注解实现方案
1265浏览 • 1回复 待解决
HarmonyOS abstract抽象实现问题
767浏览 • 1回复 待解决
HarmonyOS flutter问题
929浏览 • 1回复 待解决
配置管理多线程方案
3062浏览 • 1回复 待解决
HarmonyOS 工具自定义弹窗方案咨询
1023浏览 • 1回复 待解决
HarmonyOS 列表实现方案
1094浏览 • 1回复 待解决
HarmonyOS bind(this)问题替代方案
1911浏览 • 1回复 待解决
HarmonyOS 全局loading实现方案
1169浏览 • 1回复 待解决
HarmonyOS对于权限问题咨询
985浏览 • 1回复 待解决
HarmonyOS IOC实现方案
1229浏览 • 1回复 待解决
HarmonyOS NFC方案如何实现
1003浏览 • 1回复 待解决
HarmonyOS 加密和解密方案实现
1096浏览 • 1回复 待解决
HarmonyOS List瀑布流实现方案
1106浏览 • 1回复 待解决
HarmonyOS代码规范扫描方案实现
978浏览 • 1回复 待解决
HarmonyOS导出多个问题
1516浏览 • 1回复 待解决
HarmonyOS 点赞动画实现方案
1311浏览 • 1回复 待解决
HarmonyOS 效果实现方案
1832浏览 • 1回复 待解决
HarmonyOS color argb工具问题
1267浏览 • 1回复 待解决
HarmonyOS 卡证识别问题
1178浏览 • 1回复 待解决
HarmonyOS 电影院选座位实现方案
2262浏览 • 1回复 待解决
HarmonyOS 计算富文本宽高实现方案
1164浏览 • 1回复 待解决
HarmonyOS 发现页一镜到底方案实现
955浏览 • 1回复 待解决
如何实现全局变量?
1064浏览 • 1回复 待解决