Flutter里的单例

单例和其他语言没有区别,需要定义一个静态变量,然后通过方法/属性返回该变量。
需要注意的是尽量使用私有构造方法,避免因为使用了构造函数而导致使用错误。
如果下面这样用:

class ClassA {
  static final shared = ClassA();
}

ClassA.shared会返回单例,但是当不小心写成ClassA()时也不会报错,而是会生成新的对象,就可能出现问题。
所以应该使用如下方法进行单例创建:

class ClassA {
  static final shared = ClassA._();
  ClassA._(); // 如果需要,添加对应代码
  factory ClassA() {
    return shared;
  }
}

这样ClassA.sharedClassA()都会返回相同的单例对象,不会出现问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。