空安全下的Dart、Flutter单例模式要怎么写?

2,508 阅读1分钟

Dart中空安全下的单例模式网上的文章好少,一搜一堆都是以前的非空安全的写法,今天我来写一个空安全下的单例。其实很简单,只是新手有可能想不到。
老手请绕路。

class Single{
  static Single? _single;
  Single._();
  
  static Single getInstance(){
    return _single ??= Single._();
  }
}

测试代码:

void main() {
  print(Single.getInstance().hashCode);
  print(Single.getInstance().hashCode);
  print(Single._single.hashCode);
}

测试结果:

213875923 
213875923 
213875923

证明没问题

上个图片证明一下

iShot2021-08-18 22.27.15.png