Dart常见单例模式

工厂构造函数

class AMTool {
  static final AMTool _singleton = AMTool._init();
  factory AMTool() {
    return _singleton;
  }
  AMTool._init();
}

测试

  var t1 = AMTool();
  var t2 = AMTool();
  print(identical(t1, t2));//打印true

静态属性

class AMTool {
  AMTool._init();
  static final AMTool instance = AMTool._init();
}

测试

  var t1 = AMTool.instance;
  var t2 = AMTool.instance;
  print(identical(t1, t2));///打印true

这里的私有的下划线方法目的是,当你直接调用AMTool的时候,会提示The class 'AMTool' doesn't have a default constructor.

版权声明:
作者:Amber
链接:https://late.run/archives/79
来源:LATE-努力努力再努力
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>