var singleton = SingletonManager();
class SingletonManager {
factory SingletonManager() => _getInstance();
static SingletonManager get instance => _getInstance();
static SingletonManager? _instance;
static SingletonManager _getInstance() {
_instance ??= SingletonManager._internal();
return _instance!;
}
SingletonManager._internal() {
printf("SingletonManager init");
}
}
void test() {
SingletonManager s1 = SingletonManager();
SingletonManager s2 = SingletonManager.instance;
SingletonManager s3 = singleton;
print(identical(s1, s2));
print(identical(s1, s3));
print(s1 == s2);
print(s1 == s3);
}