Dart库中“部分”和“部分”背后的原因是什么?

时间:2013-08-23 13:00:51

标签: dart

我想知道库和它们的内容定义方式背后的原因是什么。更具体地说,库需要列出所有部件,部件需要说明它们所属的库。

这个双向对我来说似乎没用,我希望从库到零件的引用就足够了。此外,在库中添加或删除文件时,有两个地方需要进行修改。

任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:7)

我没有在任何地方看到这个问题,但我也对此感到疑惑,而我得出的结论是,这是使用图书馆级隐私而不是班级隐私的症状。

如果图书馆只需要列出其部分,那么您只需将其声明为一部分就可以访问任何图书馆的内部属性:

library hax;

part 'packages/somelib/secret.dart';

我现在可以访问secret.dart中的任何私有字段或方法。我可以使用我导入的任何第三方软件包执行此操作,这使得隐私概念成为一个笑话。

同样,如果只需要part of声明,任何文件都可以通过声明它是该库的一部分而将自身注入库中。

但是,通过要求声明库的文件中的part声明和文件中要包含在库中的part of声明,Dart可以避免这种情况。

答案 1 :(得分:3)

您可以在this thread找到一些信息。

来自Gilad Bracha:

  

最初,部件与他们的库没有联系。人们抱怨是因为很难提供良好的工具支持(即,当你打开一个部件而不是一个使用它的库时,你在哪个范围?)。