posts - 0, comments - 14, trackbacks - 0, articles - 7

接口开发的感受(2006-12-7)

Posted on 2006-12-07 11:50 lendo 阅读(1418) 评论(4)  编辑  收藏

最近,项目中负责接口开发的同事出了一个小问题。
    
     比如:系统A和系统B之间需要通过接口abInterface来通信和交换数据,系统A中有一类数据为data-01,系统B中有一类数据为data-02,但实际上data-01和data-02对于业务而言是同一个含义,表达的是同样的意思,那么如果直接将data-01类型的数据传送给系统B,那么系统B就无法解释其含义,目前我们系统的解决办法是:

     在传送数据的时候,由系统A将data-01型数据转换成data-02型数据,然后再传送给接口。
    
     但这种方式是错误的,大家讨论后得到了这样的一个比喻:中国人和英国人进行交流,中间配了一个翻译。正确的思路应该是,中国人将中文信息传送给翻译,翻译听懂以后,将信息翻译成英语,再把英语信息传送给英国人。在这其中,翻译和中国人之间以及翻译和英国人之间都是共用一套语言。
    
     目前接口出现的问题就是:中国人先将中文翻译成英文,再把英文信息说给翻译,翻译再把英文信息一字不差地说给英国人,所以,翻译在这里除了简单传送一下信息外,其他就什么也没做。翻译没有将自己的职责进行到位,而中国人的事情却超越了自己的职责,相当于中国人还做了半个翻译的事情。

     对应于系统接口而言,系统A和abInterface之间的信息data-01是互相能理解的,系统B和abInterface之间的信息data-02也是互相能理解的,系统A和系统B之间的信息不应该交叉。

     结论:接口的双方的信息是不互通的,接口和任意一方的信息格式应该遵循同一种规则,接口要做两件事:一是转换数据格式,二是传输第一步经过转换的传送目标能够理解的数据格式。

Feedback

# re: 接口开发的感受(2006-12-7)  回复  更多评论   

2006-12-07 16:34 by BeanSoft
不错... 这样的接口是无意义的, 滥用的接口. 接口一定要把所有的模块需求都定义清楚才好, 然后用抽象类实现公用的部分...

# re: 接口开发的感受(2006-12-7)  回复  更多评论   

2006-12-08 09:28 by itVincent
嗯...这样的接口没用....

# re: 接口开发的感受(2006-12-7)  回复  更多评论   

2006-12-09 17:02 by 坏男孩
接口:::

卡丁车: 接口加速();
卡丁车G3:加速(){速度=236;};
卡丁车飞碟:加速(){速度=260;};

hoho,我的理解这是接口的意义啊

最近喜欢上跑跑卡丁车了!

坏男孩赖安!!!

# re: 接口开发的感受(2006-12-7)  回复  更多评论   

2006-12-10 11:46 by lendo
呵呵。坏男孩,我们各自所理解的接口不一样哈。

只有注册用户登录后才能发表评论。


网站导航: