参考:
Flutter 中的单例模式
当你需要构造函数不是每次都创建一个新的对象时,使用factory关键字。
Flutter中,dart的单例模式设计,创建一个单例的Manager类:
class Manager {
// 工厂模式 : 单例公开访问点
factory Manager() => _getInstance();
static Manager get instance => _getInstance();
// 静态私有成员,没有初始化
static Manager _instance;
// 私有构造函数
Manager._internal() {
// 初始化
}
// 静态、同步、私有访问点
static Manager _getInstance() {
if (_instance == null) {
_instance = new Manager._internal();
}
return _instance;
}
}
main() {
// 无论如何初始化,取到的都是同一个对象
Manager manager1 = new Manager();
Manager manager2 = Manager.instance;
Manager manager3 = new Manager();
Manager manager4 = Manager.instance;
print(identical(manager1, manager2)); //true
print(identical(manager1, manager3)); //true
print(identical(manager3, manager4)); //true
}