У меня есть класс Database в приложении для машинописи, которое я использую, и которое настроено как синглтон, например:
export default class Database {
private static instance: Database;
//Actual class logic removed
public static getInstance(): Database {
if (!Database.instance) {
Database.instance = new Database();
Database.instance.logger.debug("Creating new Database Instance");
} else {
Database.instance.logger.debug("Using existing Database Instance");
}
return Database.instance;
}
}
Когда я импортирую модуль в другой файл, используя import databaseService from "../services/database.service";
, и получаю экземпляр, используя private database = databaseService.getInstance();
, он работает должным образом и создает новый экземпляр. Любые дальнейшие попытки getInstance()
в том же файле затем используют этот существующий объект.
Однако, если я затем сделаю то же самое в другом файле, он создаст еще один новый экземпляр объекта базы данных. Это нет-нет, так как в конечном итоге это испортит работу логики базы данных.
Как настроить один объект для совместного использования во всем приложении? Желательно, чтобы объект не передавался повсюду, но если так и должно быть, пусть будет так ...