gpt4 book ai didi

java - 使用 SWIG 在 C 上创建面向对象的 API

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:37 25 4
gpt4 key购买 nike

我正在使用 SWIG 为 C 库创建包装器。 C 库接口(interface)自然映射到面向对象的 API(我想在目标语言中公开),但是直接使用 SWIG 生成包装器将在目标语言中生成一个对象,其中包含所有C 库的接口(interface)。

我看到几个选项:

  • 为 C 库创建一个 C++ 接口(interface),然后用 SWIG 包装 C++
  • 在每种目标语言中构建自定义类,在内部使用简单的非 OO SWIG 输出

我更喜欢要点 2,但我的问题是,这种方法可行吗?它很有吸引力,因为我想完全控制目标语言的界面,同时尽量减少对高级 SWIG 功能的依赖。

最佳答案

我也更喜欢选项 2(“在每种目标语言中构建自定义类,在内部使用简单的非 OO SWIG 输出”)。

我的理由是:

  1. 您必须保持“更少的代码”。这复杂的部分是 C 库 + SWIG wrapper ,所以最好保留尽可能小。创造另一个 C++ 包装会使这个复杂化很多。

  2. 通常更容易在中创建接口(interface)类Python(或 Java?),只是因为它属于更高层次的抽象。

  3. 您可以应用适配器模式,它非常适合这种情况。 http://en.wikipedia.org/wiki/Adapter_pattern

关于java - 使用 SWIG 在 C 上创建面向对象的 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com