C++ 数据库API接口设计

在C++项目开发过程中,由于数据库表比较多,项目中频繁的需要展示数据。开发过程中设计了一个数据库接口类,目前虽然能满足项目需求,但是所有的数据接口参数类型都为(void *),后期维护会有一定的困难。

1.数据库接口类如下图所示:

图片说明

2.API接口代码如下图:

图片说明
图片说明
图片说明
请教有没有人能给出更好的设计方案,谢谢!

 C++的话,更好的设计是用模板。
templete <class T1, class T2>
void APICall<T1, T2>(T1 * input, T2 * output, ... )
{
...
}

_使用void* 的好处是接口比较简洁,缺点是可读性差,调用者需要一个详细的文档才能填入正确的参数,而且代码编译时缺少了类型检查,
容易导致不可预知的 错误。
建议为输入参数定义一个基类,所有输入类型是这个基类的派生类,输出参数也可以使用类似操作。这样既保证了编译时的参数检查,也为以后
不同类型的参数提供了扩展的便利性。
还有一种方法是使用union,把合法的参数类型放在这个联合中。