我试图了解第三方软件中采用的设计策略。具体来说,我正在分析软件堆栈的“IMPLEMENTATION_LAYER”(例如)中的代码实现某些功能(通过 c 例程)并将这些例程的签名作为 API 公开给“应用程序层” 以供其使用的情况。这是通过以下方式完成的
应用层提供如下结构
struct my_interfaces
{
/*List of function pointers*/
};
以及一个基于宏的函数列表,用于初始化这个结构(使用合适的函数)并访问这个结构的方法。
问题
与遗留方法相比,以这种方式公开 API 有什么优势。我的意思是,只公开函数的原型。