如何在dart中处理内部库功能

时间:2014-04-11 19:13:43

标签: dart dart-pub

我可能过于复杂了。但我有一个我正在制作的图书馆。它有2个部分,外部"任何人都可以玩这些"事物和内在的东西。我的意图是内部事物保持相对未暴露,试图保持界面清洁易于推理。所以这就是我正在做的事情(告诉我这是不是很疯狂)。

对于外部事物,我有图书馆,然后应该作为"部分"那个图书馆。对于内部事物,我有一个单独的" my_library_internal"将所有类作为内部库类的一部分的库。

事情变得奇怪。内部库将外部库导入所有内部库方法以使用外部库对象。这最终会导致编译器发出警告(虽然看起来编译得很好)。

这是一种惯用的方法吗?或者我应该只处理这个库内部或外部的所有内容,而不是担心暴露内容。

2 个答案:

答案 0 :(得分:3)

正如Dart文档的Important Concepts页面所述,它的工作方式是:

  

因此,将内部类型放在与公共类型相同的库中,并在前面加上下划线_

答案 1 :(得分:2)

这看起来非常好,甚至不需要引起警告。

如果您只有一个库,则可以使用库私有成员并将它们全部放在同一个库中(var _private = foo;),但如果您有多个共享“私有”功能的公开库,则拥有共享“隐藏”库是最简单的方法。

你不能真正隐藏共享的隐藏库 - 如果有人想要导入它,他们可以,但是,然后,他们可能会使用dart做更多的伤害:镜像,如果这是他们的想。