单例
class Singleton{
// static _instance,_instance会在编译期被初始化,保证了只被创建一次
static final Singleton _instance = Singleton._internal();
//提供了一个工厂方法来获取该类的实例
factory Singleton(){
return _instance;
}
// 通过私有方法_internal()隐藏了构造方法,防止被误创建
Singleton._internal(){
// 初始化
init();
}
// Singleton._internal(); // 不需要初始化
void init(){
print("这里初始化");
}
}
另一种单例写法
// 另一种写法:
class Singleton{
factory Singleton() => _getInstance();
static Singleton get instance => _getInstance();
static Singleton _instance;
Singleton._internal();
static Singleton _getInstance(){
if(_instance == null){
_instance = Singleton._internal();
}
return _instance;
}
}