本教程展示了如何在Dart和Flutter中创建一个私有构造函数。
在Dart语言中没有关键字private 。
您可以查看另一篇关于在Dart语言中声明私有变量的文章。
如何在Dart类中创建一个私有构造函数? 一般来说,私有构造函数允许你不创建一个对象或一个类的实例。
私有构造函数对于创建Singleton模式很有用。
Dart私有构造函数
一个构造函数可以使用underscore (_) 语法的命名构造函数来添加私有的。
class Employee {
Employee._() {}
}
如果你正在创建一个类的对象,它会抛出错误。找不到构造函数'Employee'。
void main() {
var employee= Employee();
}
同样,如果你正在扩展有一个私有构造函数的类,你可以使用超级关键字来调用,如下所示
class AdminEmployee extends Employee {
AdminEmployee() : super._();
}
Employee和AdminEmployee应该在同一个文件中,如果它是一个不同的文件,会抛出一个编译错误。
这里是一个完整的代码
class Employee {
Employee._() {}
}
class AdminEmployee extends Employee {
AdminEmployee() : super._();
}
void main() {
var employee = Employee(); //Error: Couldn't find constructor 'Employee'.
}
同样,你也可以创建可以创建私有构造函数的抽象类,但抽象类不打算使用私有构造函数。