亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我為什么要使用Interfaces?

我為什么要使用Interfaces?

喵喔喔 2019-08-17 15:23:30
我為什么要使用Interfaces?我知道他們強迫你實現方法等,但我不明白為什么你想要使用它們。任何人都可以給我一個很好的例子或解釋我為什么要實現這個。
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

一個具體的例子:接口是指定其他人的代碼必須滿足的合同的好方法。

如果我正在編寫代碼庫,我可能會編寫對具有某組行為的對象有效的代碼。最好的解決方案是在接口中指定這些行為(無實現,只是描述),然后在我的庫代碼中使用對實現該接口的對象的引用。

然后任何隨機的人都可以來,創建一個實現該接口的類,實例化該類的對象并將其傳遞給我的庫代碼并期望它工作。注意:當然可以嚴格實現接口而忽略接口的意圖,因此僅僅實現接口并不能保證事情能夠正常工作。愚蠢總能找到方法!:-)

另一個具體的例子:兩個團隊致力于必須合作的不同組件。如果兩個團隊在第1天坐下并同意一組接口,那么他們可以分別采用各種方式并圍繞這些接口實現其組件。團隊A可以構建測試工具,模擬團隊B中的組件進行測試,反之亦然。并行開發,減少錯誤。

關鍵點在于接口提供了一個抽象層,以便您可以編寫不了解不必要細節的代碼。

大多數教科書中使用的規范示例是排序例程。只要您有比較任何兩個對象的方法,就可以對任何類對象進行排序。因此,您可以通過實現IComparable接口來使任何類可排序,這會強制您實現比較兩個實例的方法。編寫所有排序例程以處理對IComparable對象的引用,因此只要實現IComparable,就可以在類的對象集合中使用任何這些排序例程。


查看完整回答
反對 回復 2019-08-17
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

一個典型的例子是插件架構。開發人員A編寫主應用程序,并希望確保開發人員B,C和D編寫的所有插件符合他的應用程序對他們的期望。


查看完整回答
反對 回復 2019-08-17
  • 3 回答
  • 0 關注
  • 608 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號