zoukankan      html  css  js  c++  java
  • 【开发经验】在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;

    }

  • 相关阅读:
    jQuery Ajax学习
    jquery 学习
    jquery after append appendTo三个函数的区别
    rtmp服务器以及rtmp推流/拉流/转发
    Python字符编码详解
    Python自省(反射)指南
    Python线程指南
    Python正则表达式指南[转载]
    Python2.7 threading模块学习
    python中if __name__ == '__main__': 的解析
  • 原文地址:https://www.cnblogs.com/sundaysme/p/12588050.html
Copyright © 2011-2022 走看看