【问题标题】:Ada encapsulation and private typesAda 封装和私有类型
【发布时间】:2020-11-09 02:17:55
【问题描述】:

从编译器的角度来看,在包规范中声明 Ada 类型与在正文中声明 Ada 类型有什么区别?

【问题讨论】:

    标签: types private ada encapsulation


    【解决方案1】:

    一般来说,使声明(类型,但也包括常量或子程序等其他项)尽可能地局部化是一个好习惯。在您的情况下,如果该类型仅用于正文而不用于您的包规范的用户(即使作为私有类型),请将其放在正文中。此外,如果仅在主体的子程序中使用,则将其放在该子程序中。它减少了名称冲突的可能性并使事情变得更清晰。总而言之,编译器的优势(代码中给定点的较小标识符集)与程序员的优势相同。

    【讨论】:

      【解决方案2】:

      Ada 对encapsulation 的大力支持包括语义一致包形式的modular programming。从编译器的角度来看,“将包的规范与其主体分离……可以减少编译时间。”关注privacy 主题中检查的抽象数据类型,很明显公共部分是客户可以访问的。相反,私有部分对实现是可访问的。它包括足够的实现细节供编译器为任意客户端生成代码,但仅此而已。一旦改变的包体被成功编译,现有的客户端就可以依赖于未改变的规范,而无需重新编译相应的包体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2021-11-17
        • 2023-02-06
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        相关资源
        最近更新 更多