如何用Dart写一个单例

由于Dart拥有factory constructors,因此构建单例模式很容易。

class Singleton {
  static final Singleton _singleton = new Singleton._internal();

  factory Singleton() {
    return _singleton;
  }

  Singleton._internal();
}

我们可以使用new来构造代码如下:

main() {
  var s1 = new Singleton();
  var s2 = new Singleton();
  print(identical(s1, s2));  // true
  print(s1 == s2);           // true
}

相关推荐