本节目标

  • 工厂函数
  • 工厂构造函数

环境

  • Dart 2.1.0

工厂函数

简化类型实例化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
void main() {
var xm = phoneFactory('ios');
xm.startup();
xm.shutdown();
}

class Phone {
void startup() {
print('开机');
}
void shutdown() {
print('关机');
}
}

Phone phoneFactory(String name) {
switch (name) {
case 'android':
return new AndroidPhone();
break;
default:
return new IOSPhone();
}
}

class AndroidPhone extends Phone {
void startup() {
super.startup();
print('Android Phone 开机');
}
}

class IOSPhone extends Phone {
void startup() {
super.startup();
print('IOS Phone 开机');
}
}

工厂构造函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
void main() {
var xm = Phone('android');
xm.startup();
xm.shutdown();
}

abstract class Phone {
factory Phone(String name) {
switch (name) {
case 'android':
return new AndroidPhone();
break;
default:
return new IOSPhone();
}
}
void startup();
void shutdown();
}

class AndroidPhone implements Phone {
void startup() {
print('Android Phone 开机');
}
void shutdown() {
print('Android 关机');
}
}

class IOSPhone implements Phone {
void startup() {
print('IOS Phone 开机');
}
void shutdown() {
print('IOS 关机');
}
}

代码

参考


© 猫哥

https://ducafecat.tech