任何人都不希望路面上有坑,對于應用程式也是一樣。系統API或者說任何層次的接口都定義了上層可以操作的集合,事實上我們經常聽說“XX無關性”就是這個道理。在linux上,ls程式可以從2.6.1核心的機器上複制到2.6.35機器上仍然能用,我們說2.6.1到2.6.35核心提供了系統調用相容性,也就是說,系統調用鋪就了一條沒有坑的路,如果一個應用程式,比如X從2.6.1核心的機器上複制到2.6.35機器上不能運作了,那麼這條道路上就有了一些坑,我們修改程式X就是在填補這些坑...
是以,在設計接口的時候,最重要的就是保持相容性,應該盡量将新的事情放到接口的實作中而不是接口的定義中,除非這是一個新的功能。如果提供了新的功能,那麼必須以文檔的形式将其展現出來,否則...定義接口就是鋪設一條道路,我們希望這條路上沒有任何的坑,老車也可以在新路上行駛!
本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1271186