我想知道库和它们的内容定义方式背后的原因是什么。更具体地说,库需要列出所有部件,部件需要说明它们所属的库。
这个双向对我来说似乎没用,我希望从库到零件的引用就足够了。此外,在库中添加或删除文件时,有两个地方需要进行修改。
任何人都能解释一下吗?
答案 0 :(得分:7)
我没有在任何地方看到这个问题,但我也对此感到疑惑,而我得出的结论是,这是使用图书馆级隐私而不是班级隐私的症状。
如果图书馆只需要列出其部分,那么您只需将其声明为一部分就可以访问任何图书馆的内部属性:
library hax;
part 'packages/somelib/secret.dart';
我现在可以访问secret.dart中的任何私有字段或方法。我可以使用我导入的任何第三方软件包执行此操作,这使得隐私概念成为一个笑话。
同样,如果只需要part of
声明,任何文件都可以通过声明它是该库的一部分而将自身注入库中。
但是,通过要求声明库的文件中的part
声明和文件中要包含在库中的part of
声明,Dart可以避免这种情况。
答案 1 :(得分:3)
您可以在this thread找到一些信息。
来自Gilad Bracha:
最初,部件与他们的库没有联系。人们抱怨是因为很难提供良好的工具支持(即,当你打开一个部件而不是一个使用它的库时,你在哪个范围?)。