+ -
当前位置:首页 → 问答吧 → 请教两个函数哪个更好?数据到底需不需要封装?

请教两个函数哪个更好?数据到底需不需要封装?

时间:2010-08-16

来源:互联网

A,B模块间通信,格式是这样的,首先发送操作代码,然后发送一系列参数,不同的操作代码需要的参数个数不同

我写了两个函数接口,哪个更好点?

函数1:
  1. void f( int op_code , size_t argu_len , int * argu )
  2. {
  3.   ...
  4. }
复制代码
函数2:
  1. typedef struct{

  2. int op_code;
  3. size_t argu_len;
  4. int *argu;
  5. } T;

  6. void f( T *p )
  7. {
  8.   ...
  9. }
复制代码
第2个接口看起来简单点,但是每次发送前,数据都需要打包,感觉有点麻烦。

大家觉得哪个方式更好?

作者: ahui886   发布时间: 2010-08-16

我喜第一个

作者: zhangsuozhu   发布时间: 2010-08-16

第一个好

作者: hellioncu   发布时间: 2010-08-16

回复 zhangsuozhu


    理由呢?

其实我也纠结了很久,第1种调用起来很顺手,直接送参数,第2种每次都要打包数据,很麻烦,但是接口比较简洁点,徘徊中...

作者: ahui886   发布时间: 2010-08-16

回复 ahui886


    如您所说的。第一个不用打包参数用着方便。参数也不多。看函数直接就可能明白他用哪些参数了。第二个还要参看数据结构。看完数据结构,还要了解这个结构中哪些是函数需要的,那些成员没有用。总的来说不如第一个简洁。所以我喜第一个

作者: zhangsuozhu   发布时间: 2010-08-16

支持第一个用法

作者: daybreakcx   发布时间: 2010-08-16

支持第二个,可利于今后的扩展,假如你今后想从操作代码中再分出一层用服务代码标识,你只需在结构中增加一个域,现有的函数可以不用更改,在新加的函数中使用其中新加的服务代码即可。

作者: logicBaby   发布时间: 2010-08-16

什么叫松散耦合?什么叫1点维护?楼主知不知道?

作者: 凯撒大帝、   发布时间: 2010-08-16

回复 blackuhlan


    恩,搜素了一下,ls能不能分享下心得,谢拉...

作者: blackuhlan   发布时间: 2010-08-17