[阅读: 700] 2006-09-12 02:45:28
烂归烂,还是基本解决了版本兼容的问题。。。。
我们公司内部考虑新应用接口的时候,我提的意见:
可否这样考虑:
1、所有通讯函数,均返回(连接函数)或使用(收、发、断、检测函数)句柄
这样,才能支持同时多连接(modem+tcp,或多个tcp)
2、配置信息或初始化参数,能否采用字符串,以“;name1=value1;name2=value2;...”的格式(简程INI格式)
这样,对于以后出现的新信息、新参数,可以很好的兼容
而且所有通讯模式的连接函数的入口参数都一致了。
INI格式的组合和分解函数其实是相当简单的,效率也并没有低多少,空间也没有浪费多少,
但是带来的好处是代码无须重新编译即可实现向下兼容。
多连接目前的确还没有,TCP模块(硬件)的接口也限制了不可能支持TCP的多连接,
但是我们的新标准,在影响不大的情况下,不应该把自己限制在现有的缺陷上。
多应用联动时,如果后台要求不能断线进行,则肯定要有多连接才能实现的。
这个多连接不一定就是2个TCP连接,可能一个是拨号,一个TCP/GPRS/CDMA。。。
。。。。。。。。,通讯采用句柄,是比较接近Linux统一风格的,
也是以后把通讯、设备操作类似于文件操作(UNIX的思路)的第一步。
你现在的结构指针,其实也是一种句柄,只是把类型暴露给调用者了,
真正的句柄就可以隐藏涉及的结构类型信息,使得日后升级或改换该结构时,对调用者的影响最小:无须修改任何代码。
INI最大的好处其实是:代码无须重新编译即可实现向下兼容
这一点,对于版本比较多,而且旧产品已经发布在外来不及全部升级时,好处是非常大的。
“可见性”和“扩展性”,相比之下倒还是不太重要的好处了。
不过,这主要还是一个习惯和体验的问题。