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 进行授权