• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【开发经验】在Flutter中使用dart的单例模式

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

创建一个单例的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;

}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Dart异步编程-future发布时间:2022-07-18
下一篇:
vscode配置dart开发环境发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap