C++接口设计的心得体会
Posted CodeBowl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++接口设计的心得体会相关的知识,希望对你有一定的参考价值。
今天在模块接口设计的时候,对如何设计一个好的接口,产生了疑惑。
遂请教了俩位师傅,得到了俩条建议,私以为十分有用!
1.接口中的参数最好不要用基础类型
如果不考虑维护的话,我们提供一个接口,当然从眼前的角度出发,使用对应的基础类型是最好的。
例如:
int add(int a,int b);
但是模块接口作为提供为外部调用的角色,在复杂的业务场景中一定面临着诸多的修改,但是不同的使用方对修改的需求是不一样的,所以写死基础类型的接口就显得不太合适。
例如这里的add()函数,之后想实现不同个数,不同类型的加法。
就需要修改或者重载。
建议写成自定义数据类型[复合数据类型]:
typedef struct MYDATA
int v_num;
int v1;
float v2;
double v3;
// ...
// 由用户自己定义
;
auto add(MYDATA mydata)
double res=0;
void* p = &mydata;
for(int i=1;i<=mydata.v_num;i++)
res=res+*(p+i);
auto ret = res;
return ret;
调用方使用的时候,就不需要修改:
int main()
MYDATA mydata 3,4,5.0,6.9;
auto tes = add(mydata);
return 0;
2.设计接口的时候,最小化原则
我今天写接口的时候,使用了创建模式,因为我功能划分比较详细,所以设计多个接口类,相应地多出了一些代码,我在思考这样合不合理的时候,听取了别人的建议。
”最小化原则“
给别人提供接口的时候,别人也许只会用的这一个功能,这时候最后不要提供过多的接口,所以作为提供方,可以将类划分的细一点!
以上是关于C++接口设计的心得体会的主要内容,如果未能解决你的问题,请参考以下文章