подскажите, нормально ли делать такой singleton
class MySingl {
static MySingl _instance;
static get instance => _instance;
static Future<void> createInstance(){
_instance = await instanceCreator();//в общем весь вопрос в этой строчке, я хочу проинить 1 раз, чтобы не ждать каждый раз await
}
}
т.е можно ли потом один раз в main классе проинить(MySingl.createInstance()) синглтон и потом обращаться к нему из любой точки приложения как MySingl.instance(т.е без Future, сразу получать доступ к объекту) ?
т.е один раз подождать await и больше не трогать инициализацию? Или это плохой способ и лучше сделать так:
class MySingl {
static MySingl _instance;
static Future<MySingl> getInstance(){
_instance ??= await instanceCreator();
}
но тогда нужно будет каждый раз ждать пока завершится future, чтобы получить доступ к полю, а хотелось бы проинитить 1 раз и иметь доступ к полю без ожидания Future