3 回答

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

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