Posted on 2006-12-07 11:50
lendo 阅读(1419)
评论(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之间的信息不应该交叉。
结论:接口的双方的信息是不互通的,接口和任意一方的信息格式应该遵循同一种规则,接口要做两件事:一是转换数据格式,二是传输第一步经过转换的传送目标能够理解的数据格式。