【开发经验】在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;
}
}
调用
// 无论如何初始化,取到的都是同一个对象
Manager manager = new Manager();
Manager manager2 = Manager.instance;
作者:马嘉伦
链接:https://www.jianshu.com/p/720b968f4e2c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
class UserManager {
// 如果一个函数的构造方法并不总是返回一个新的对象的时候,可以使用factory,
// 比如从缓存中获取一个实例并返回或者返回一个子类型的实例
// 工厂方法构造函数
factory UserManager() => _getInstance();
// instance的getter方法,通过UserManager.instance获取对象
static UserManager get instance => _getInstance();
// 静态变量_instance,存储唯一对象
static UserManager _instance;
// 私有的命名式构造方法,通过它可以实现一个类可以有多个构造函数,
// 子类不能继承internal不是关键字,可定义其他名字
UserManager._internal() {
// 初始化
user = new User(false, "", "", "", "", false, "", false, "", "");
}
// 获取对象
static UserManager _getInstance() {
if (_instance == null) {
// 使用私有的构造方法来创建对象
_instance = new UserManager._internal();
}
return _instance;
}
// 用户对象
User user;
}