Dart | Flutter中的私有构造函数的多种方法及示例

1,663 阅读1分钟

本教程展示了如何在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'.

}

同样,你也可以创建可以创建私有构造函数的抽象类,但抽象类不打算使用私有构造函数。