热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Ada:如何组织嵌套包

假设我们有一辆车,它从IMU获取它的位置。IMU包由几个私有组件组成,它编排这些组件以计算车辆在空间中的状态:withIMU;useIMU;P

假设我们有一辆车,它从 IMU 获取它的位置。IMU 包由几个私有组件组成,它编排这些组件以计算车辆在空间中的状态:

with IMU; use IMU;
Package Vehicle is
...
end vehicle;
Package IMU is
type Attitude is record
Lat, Lon: Angle;
Pitch, Roll, Yaw: Angle;
GroundSpeed: Speed;
...
end record function Get_Position return Attitude is ... Package GPS is
...
end GPS; Package Accelerometer is
...
end Accelerometer; Package Gyro is
...
end Gyro;
end IMU;

GPS、加速度计和陀螺仪的内部结构仅在 IMU 环境中有意义;它们必须完全隐藏在 Vehicle 之外。

在单个源文件中声明 IMU 及其所有子组件将难以阅读和维护;我希望每个子组件都在它自己的源文件中。如果我在 IMU 级别对它们进行编码,则车辆将能够访问 GPS,这是错误的。

构建嵌套包的最佳实践是什么?

回答


有多种方法可以构建您的代码,但我不会使用嵌套包,而是为每个“组件”使用一个私有子组件。

这样,每个组件都将位于自己的单元中,并且可以从其父级和兄弟级实现中看到。

您的代码将是

Package IMU is
type Attitude is record
Lat, Lon: Angle;
Pitch, Roll, Yaw: Angle;
GroundSpeed: Speed;
...
end record function Get_Position return Attitude is ...

end IMU;
private package IMU.GPS is
...
end IMU.GPS;
private package IMU.Accelerometer is
...
end IMU.Accelerometer;private package IMU.Gyro is
...
end IMU.Gyro;

有关其他示例,请参阅wikibook






推荐阅读
author-avatar
横着走觉察生活_915
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有