Dart语言学习 - 26 工厂函数
本节目标
环境
工厂函数
简化类型实例化
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
邮箱 ducafecat@gmail.com / 微信 ducafecat / 留言板 disqus