【开发经验】在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;

}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM