サードパーティのソフトウェアで採用されている設計戦略を理解しようとしています。具体的には、ソフトウェアスタックの「IMPLEMENTATION_LAYER」(たとえば)のコードが(cルーチンを介して)特定の機能を実装し、それらのルーチンの署名をAPIとして「APPLICATIONLAYER」に公開して使用する場合を分析して います。これは次のように行われます
アプリケーション層には、次の構造が用意されています。
struct my_interfaces
{
/*List of function pointers*/
};
この構造を(適切な関数で)初期化し、この構造のメソッドにアクセスするためのマクロベースの関数のリスト。
質問
従来の方法と比較して、この方法でAPIを公開することの利点は何ですか。つまり、関数のプロトタイプだけを公開するという従来の方法です。