第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java接口方法:每個(gè)類都應(yīng)實(shí)現(xiàn)一個(gè)接口嗎?

Java接口方法:每個(gè)類都應(yīng)實(shí)現(xiàn)一個(gè)接口嗎?

慕斯709654 2019-12-02 13:52:42
我已經(jīng)在大學(xué)的一些課程中使用Java編程,但是我有以下問(wèn)題:從方法上來(lái)說(shuō),每個(gè)類都應(yīng)該實(shí)現(xiàn)一個(gè)接口嗎?不這樣做是不明智的做法?您能描述一下使用接口不是一個(gè)好主意的情況嗎?編輯:就個(gè)人而言,我喜歡將所有對(duì)象都使用接口的概念作為一種方法和習(xí)慣,即使這顯然沒(méi)有好處。Eclipse使用所有方法自動(dòng)創(chuàng)建了一個(gè)類文件,因此無(wú)論如何都不會(huì)浪費(fèi)時(shí)間。
查看完整描述

3 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊

如果您不打算使用它,則無(wú)需創(chuàng)建接口。

通常,在以下情況下需要接口:

  • 您的程序?qū)槟慕M件提供幾種實(shí)現(xiàn)。例如,默認(rèn)實(shí)現(xiàn)是代碼的一部分,而模擬實(shí)現(xiàn)是在JUnit測(cè)試中使用的。一些工具會(huì)自動(dòng)創(chuàng)建模擬實(shí)現(xiàn),例如EasyMock。

  • 您想通過(guò)諸如Spring或JBoss Micro-Container之類的框架對(duì)此類使用依賴注入。在這種情況下,最好使用一個(gè)接口指定一個(gè)類與其他類的依賴關(guān)系。


查看完整回答
反對(duì) 回復(fù) 2019-12-02
?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

每個(gè)類都提供一個(gè)非私有API,但確實(shí)實(shí)現(xiàn)了一個(gè)接口(即合同)。是否選擇將接口表示為Java接口取決于實(shí)現(xiàn)是否為“變化的概念”。

如果您完全確定只有一種合理的實(shí)現(xiàn),則不需要接口。否則,界面將允許您更改實(shí)現(xiàn)而無(wú)需更改客戶端代碼。

假設(shè)您以后對(duì)新的要求有完全的控制權(quán),那么有些人會(huì)大喊“ YAGNI”。其他人會(huì)公平地?fù)?dān)心,他們將需要更改不變的-已發(fā)布的API。

如果您不實(shí)現(xiàn)接口(并使用某種工廠進(jìn)行對(duì)象創(chuàng)建),則某些類型的更改將迫使您違反開(kāi)放式封閉原則。在某些情況下,這在商業(yè)上是可以接受的,在其他情況下則不是。

您能描述一下使用接口不是一個(gè)好主意的情況嗎?

在某些語(yǔ)言中(例如C ++,C#,但不包括Java),如果您的類不包含虛擬方法,則可以提高性能。

在小型程序中,或者在沒(méi)有發(fā)布API的應(yīng)用程序中,維護(hù)單獨(dú)的接口的成本可能很小。

如果由于將接口和實(shí)現(xiàn)分開(kāi)而導(dǎo)致復(fù)雜性顯著增加,則可能未將接口用作合同。接口降低了復(fù)雜性。從消費(fèi)者的角度來(lái)看,組件成為滿足合同條款的商品,而不是本身具有復(fù)雜實(shí)施細(xì)節(jié)的實(shí)體。


查看完整回答
反對(duì) 回復(fù) 2019-12-02
  • 3 回答
  • 0 關(guān)注
  • 1553 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)