Ada:规范的公共和私有部分是分开的吗?

时间:2017-06-26 21:45:05

标签: ada

我了解到Ada规范文件(* .ads)中有公共部分和私有部分,只有公共部分应该考虑编译单元的用户(通常是包)。

在不同的文件中分离规范的公共部分和私有部分实际上并不常见吗?

因此,最后,这样的包的用户知道规范层上的包的内部但不能使用它。我在这儿吗?

谢谢,欢呼, 沃尔夫冈

1 个答案:

答案 0 :(得分:7)

不,Ada不允许您将包规范的公共部分和私有部分分开。

Ada的首席设计师Jean Ichbiah在一种语言上做了一些工作,这种语言实际上将公共,私有(数据结构)和实现部分分开,但这并没有成为Ada的一部分

此外:

  • 子包的私有部分和正文可以看到其父包的私有部分。
  • 私有子包的规范可以看到其父包的私有部分。

...所以你不能完全忽略包规范的私有部分。

一个实际的例子:

当我编写单元测试时,我喜欢将测试套件放在我正在测试的软件包的子包中。这样我的测试用例不仅限于检查包中声明的类型的公共视图。