`getInstance()` 方法的目的是什么?

What is the purpose of a `getInstance()` method?

我在看用户服务,我的理解是它类似于 Nest 中的用户服务,但不是真的。

我在其中看到以下内容:

export class UsersService {
  private usersDao: UsersDao

  constructor() {
     this.usersDao = UsersDao.getInstance();
  }
}

static getInstance(): UsersService {
  if (!UsersService.instance) {
    UsersService.instance = new UsersService();
  }
  return UsersService.instance;
}

getInstance() 到底在做什么?为什么不只是:

export class UsersService {

  constructor(private usersDao: UsersDao) {}
}

getInstance()的目标是什么?

通常这是单例模式的一部分。基本上是一个 class,一旦实例化,任何后续 classes 都将引用该实例,而不是每次都创建一个新实例。

https://en.wikipedia.org/wiki/Singleton_pattern

它对于 class 在首次构造时需要发生一些复杂的事情但随后的所有调用只需要访问属性的情况很有用。

我还想提一下,您可以(具体在 JavaScript 中)export 一个实例,以及所有 .