Estoy mirando un servicio de usuario, tengo entendido que es similar a un servicio de usuario en Nest, pero no realmente.
En ella veo lo siguiente:
export class UsersService { private usersDao: UsersDao constructor() { this.usersDao = UsersDao.getInstance(); } } static getInstance(): UsersService { if (!UsersService.instance) { UsersService.instance = new UsersService(); } return UsersService.instance; } ¿Qué está haciendo getInstance() exactamente? Y por qué no solo:
export class UsersService { constructor(private usersDao: UsersDao) {} } ¿Cuál es el objetivo de getInstance() ?
Por lo general, esto es parte del patrón singleton. Básicamente, una clase que, una vez instanciada, cualquier clase posterior se referirá a esa instancia, en lugar de crear una nueva instancia cada vez.
https://en.wikipedia.org/wiki/Singleton_pattern
Es útil para una clase en la que debe suceder algo complejo cuando se construye por primera vez, pero todas las llamadas siguientes solo necesitan acceso a las propiedades.
También me gustaría mencionar que puede (específicamente en JavaScript) export una instancia, y todos los módulos que importen el módulo tendrán acceso a la misma instancia .