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++接口设计的心得体会的主要内容,如果未能解决你的问题,请参考以下文章

C++接口设计的心得体会

c++面向对象程序设计心得

从vtable到设计模式——我的C++面向对象学习心得

面向对象程序设计lesson2心得体会

c++师傅领进门,修行靠个人第一篇:认识c++

c++师傅领进门,修行靠个人第一篇:认识c++