Posted on 2006-12-07 11:50
lendo 閱讀(1424)
評論(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之間的信息不應該交叉。
???? 結論:接口的雙方的信息是不互通的,接口和任意一方的信息格式應該遵循同一種規則,接口要做兩件事:一是轉換數據格式,二是傳輸第一步經過轉換的傳送目標能夠理解的數據格式。