我公司生产的软件有好几层,分为两个项目。“内层”是一个 HAL 层,直接与我们生产的硬件的驱动程序对话。这是在一个名为“xxxHAL”的 Visual Studio 项目中。该项目构建到一个静态库中。其他层一起形成一个客户端 API。这些“其他层”位于它们自己单独的 VS 项目中,并从第一个静态链接 HAL lib 文件。它们构建到我们分发的 DLL 中,以便客户可以构建自己的软件。
我的问题:
将 HAL 函数分离到自己的静态库中的动机是什么?
为什么要将所有这些 HAL 函数放在全局命名空间中?这如何适应 OOP 范式?
整个两个项目集是最近从头开始对旧 API 的重新设计,并且构建得非常有条理。API 设计非常面向对象,在我看来至少设计得非常好。对于最终用户来说,事情非常容易使用和清晰,所以我可以理解以这种方式构建 API 用户端软件的动机。我想我主要是觉得如果我从头开始设计软件,我会采取不同的方法。有什么想法吗?