Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在dart中可以有一个私有构造函数吗?_Dart - Fatal编程技术网

在dart中可以有一个私有构造函数吗?

在dart中可以有一个私有构造函数吗?,dart,Dart,我可以在TypeScript中执行以下操作 class Foo { private constructor () {} } 因此,这个构造函数只能从类本身内部访问 如何在Dart中实现相同的功能?只需创建一个以开头的命名构造函数即可 class Foo { Foo._() {} } 然后构造函数Foo.\uz()将只能从其类(和库)中访问。没有任何代码的方法必须是这样的 class Foo { Foo._(); } 如何为此编写单元测试?您将无法为此私有构造函数编写单元测试。记

我可以在TypeScript中执行以下操作

class Foo {
  private constructor () {}
}
因此,这个
构造函数只能从类本身内部访问


如何在Dart中实现相同的功能?

只需创建一个以
开头的命名构造函数即可

class Foo {
  Foo._() {}
}

然后构造函数
Foo.\uz()
将只能从其类(和库)中访问。

没有任何代码的方法必须是这样的

class Foo {
  Foo._();
}

如何为此编写单元测试?您将无法为此私有构造函数编写单元测试。记住,测试接口而不是实现。由于私有构造函数将无法从库外部访问,因此在单元测试中测试私有方法将测试实现而不是接口。如果这是私有的,那么我怎么能做
Foo.()呢
在类之外而不出错?@Chrillewoodz如果您尝试从声明类的同一文件初始化该类,则可以。