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 自定义注解实现方案
373浏览 • 1回复 待解决
HarmonyOS abstract抽象实现问题
236浏览 • 1回复 待解决
HarmonyOS flutter问题
360浏览 • 1回复 待解决
HarmonyOS bind(this)问题替代方案
469浏览 • 1回复 待解决
HarmonyOS 工具自定义弹窗方案咨询
455浏览 • 1回复 待解决
HarmonyOS 全局loading实现方案
310浏览 • 1回复 待解决
配置管理多线程方案
2331浏览 • 1回复 待解决
HarmonyOS 列表实现方案
502浏览 • 1回复 待解决
HarmonyOS IOC实现方案
505浏览 • 1回复 待解决
HarmonyOS List瀑布流实现方案
507浏览 • 1回复 待解决
HarmonyOS 加密和解密方案实现
399浏览 • 1回复 待解决
HarmonyOS对于权限问题咨询
612浏览 • 1回复 待解决
HarmonyOS NFC方案如何实现
438浏览 • 1回复 待解决
HarmonyOS 效果实现方案
988浏览 • 1回复 待解决
HarmonyOS代码规范扫描方案实现
354浏览 • 1回复 待解决
HarmonyOS导出多个问题
965浏览 • 1回复 待解决
HarmonyOS 点赞动画实现方案
513浏览 • 1回复 待解决
瀑布流场景推荐实现方案
2339浏览 • 1回复 待解决
HarmonyOS 埋点方案如何实现
498浏览 • 1回复 待解决
HarmonyOS 应用多主题实现方案
802浏览 • 1回复 待解决
HarmonyOS 发现页一镜到底方案实现
375浏览 • 1回复 待解决
HarmonyOS 计算富文本宽高实现方案
504浏览 • 1回复 待解决
HarmonyOS 电影院选座位实现方案
517浏览 • 1回复 待解决