class TokenManaer {
String? _name;
final String _key = '123'
//创建单例(这里的_instance是为了保存实例的)
static TokenManager? _instance;
// 无参的自定义的构造函数(也可以叫无参的命名构造函数)
// 为了确保外部不能直接创建实例(为啥呢?)
TokenManager._internal(); // ToDo
// dart中只能有一个未命名的构造函数,而命名构造函数可以有多个
factory TokenManager() {
_instance ??= TokenManager._insternal();
return _instance!;
}
}
//这一句是作为一个变量,用来存放实例的
static TokenManager? _instance
//这一句是自定义的构造函数,类似与construct
TokenManager._internal()
// 其实也可以理解为construct
factory TokenManager(){ // 这是一个未命名的构造函数}
//在案例中有两个construct的构造函数?
TokenManaget._internal()
factory TokenMnanaget
其中 factory构造函数与普通构造函数最大的区别是什么?
factory构造函数有返回值普通构造函数没有返回值
疑问: 为啥要写两个构造函数呢?
在使用中可以用factory TokenManaget()用来进行判断,是否存在了实例
可以上面案例中 “ToDo”的TokenManager_internal()是否完全没有呀,因为执行这一句也给无法赋值给 _internal 属性呀