单例
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;}}
