3 回答

TA貢獻1797條經(jīng)驗 獲得超6個贊
一個具體的例子:接口是指定其他人的代碼必須滿足的合同的好方法。
如果我正在編寫代碼庫,我可能會編寫對具有某組行為的對象有效的代碼。最好的解決方案是在接口中指定這些行為(無實現(xiàn),只是描述),然后在我的庫代碼中使用對實現(xiàn)該接口的對象的引用。
然后任何隨機的人都可以來,創(chuàng)建一個實現(xiàn)該接口的類,實例化該類的對象并將其傳遞給我的庫代碼并期望它工作。注意:當然可以嚴格實現(xiàn)接口而忽略接口的意圖,因此僅僅實現(xiàn)接口并不能保證事情能夠正常工作。愚蠢總能找到方法!:-)
另一個具體的例子:兩個團隊致力于必須合作的不同組件。如果兩個團隊在第1天坐下并同意一組接口,那么他們可以分別采用各種方式并圍繞這些接口實現(xiàn)其組件。團隊A可以構(gòu)建測試工具,模擬團隊B中的組件進行測試,反之亦然。并行開發(fā),減少錯誤。
關(guān)鍵點在于接口提供了一個抽象層,以便您可以編寫不了解不必要細節(jié)的代碼。
大多數(shù)教科書中使用的規(guī)范示例是排序例程。只要您有比較任何兩個對象的方法,就可以對任何類對象進行排序。因此,您可以通過實現(xiàn)IComparable
接口來使任何類可排序,這會強制您實現(xiàn)比較兩個實例的方法。編寫所有排序例程以處理對IComparable對象的引用,因此只要實現(xiàn)IComparable,就可以在類的對象集合中使用任何這些排序例程。

TA貢獻1852條經(jīng)驗 獲得超1個贊
一個典型的例子是插件架構(gòu)。開發(fā)人員A編寫主應(yīng)用程序,并希望確保開發(fā)人員B,C和D編寫的所有插件符合他的應(yīng)用程序?qū)λ麄兊钠谕?/p>
添加回答
舉報