文章

Dart-单例的四种写法

单例的四种写法

Dart-单例的四种写法

Dart语言详解

dart中的单例

工厂构造 Factory constructor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Singleton{

  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  factory Singleton(){
    return _instance;
  }

}

void main() {
	Singleton s = Singleton();
}

静态变量 Static field with getter

1
2
3
4
5
6
7
8
9
10
11
12
13
class Singleton{

  Singleton._privateConstructor();

  static final Singleton _instance = Singleton._privateConstructor();

  static Singleton get instance { return _instance;}

}

void main() {
	Singleton s = Singleton.instance;
}

静态变量 Static field

1
2
3
4
5
6
7
8
9
10
11
class Singleton {

  Singleton._privateConstructor();

  static final Singleton instance = Singleton._privateConstructor();

}

void main() {
	Singleton s = Singleton.instance;
}

常量和工厂构造 const constructor & factory

1
2
3
4
5
6
7
8
9
10
11
class Singleton {
  factory Singleton() =>
    const Singleton._internal_();
  const Singleton._internal_();
}


void main() {
  print(new Singleton() == new Singleton());
  print(identical(new Singleton() , new Singleton()));
}
本文由作者按照 CC BY 4.0 进行授权