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

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

編程接口是什么意思?

編程接口是什么意思?

手掌心 2019-11-30 11:21:11
我一直在大多數(shù)與編程相關(guān)的站點(diǎn)上聽到該聲明:編程到接口而不是實(shí)現(xiàn)但是我不明白其中的含義嗎?例子會(huì)有所幫助。編輯:即使我也收到了很多很好的答案,所以您可以用一些代碼片段來補(bǔ)充它,以便更好地理解該主題。謝謝!
查看完整描述

3 回答

?
回首憶惘然

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

您可能正在尋找這樣的東西:


public static void main(String... args) {

  // do this - declare the variable to be of type Set, which is an interface

  Set buddies = new HashSet();


  // don't do this - you declare the variable to have a fixed type

  HashSet buddies2 = new HashSet();

}

為什么第一種方法被認(rèn)為是好的?稍后再說,您決定需要使用其他數(shù)據(jù)結(jié)構(gòu),例如LinkedHashSet,以便利用LinkedHashSet的功能。必須更改代碼,如下所示:


public static void main(String... args) {

  // do this - declare the variable to be of type Set, which is an interface

  Set buddies = new LinkedHashSet();  // <- change the constructor call


  // don't do this - you declare the variable to have a fixed type

  // this you have to change both the variable type and the constructor call

  // HashSet buddies2 = new HashSet();  // old version

  LinkedHashSet buddies2 = new LinkedHashSet();

 }

這看起來還不錯(cuò),對吧?但是,如果您以同樣的方式編寫吸氣劑怎么辦?


public HashSet getBuddies() {

  return buddies;

}

這也必須更改!


public LinkedHashSet getBuddies() {

  return buddies;

}

希望您能看到,即使使用像這樣的小程序,也對聲明變量類型具有深遠(yuǎn)的影響。如果僅依賴于將變量聲明為接口,而不是作為該接口的特定實(shí)現(xiàn)(在這種情況下,將其聲明為接口),那么對象的來回移動(dòng)無疑會(huì)大大簡化程序的編寫和維護(hù)。集,而不是LinkedHashSet或其他值)。可能就是這樣:


public Set getBuddies() {

  return buddies;

}

另一個(gè)好處是,(至少對我而言)差異有助于我更好地設(shè)計(jì)程序。但是希望我的示例可以給您一些想法...希望能有所幫助。


查看完整回答
反對 回復(fù) 2019-11-30
?
守著星空守著你

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

一天,他的老板指示一名初級程序員編寫一個(gè)應(yīng)用程序來分析業(yè)務(wù)數(shù)據(jù),并將其匯總為帶有指標(biāo),圖形和所有其他內(nèi)容的漂亮報(bào)告。老板給他一個(gè)XML文件,上面寫著“這是一些示例業(yè)務(wù)數(shù)據(jù)”。


程序員開始編碼。幾周后,他覺得度量,圖形和內(nèi)容足以使老板滿意,于是他介紹了他的工作。老板說:“那太好了,但是它還能顯示我們擁有的這個(gè)SQL數(shù)據(jù)庫中的業(yè)務(wù)數(shù)據(jù)嗎?”


程序員回到編碼。在他的整個(gè)應(yīng)用程序中都有用于從XML讀取業(yè)務(wù)數(shù)據(jù)的代碼。他重寫了所有這些代碼片段,并以“ if”條件包裝它們:


if (dataType == "XML")

{

   ... read a piece of XML data ...

}

else

{

   .. query something from the SQL database ...

}

當(dāng)看到該軟件的新版本時(shí),老板回答:“太好了,但是它還能報(bào)告來自該Web服務(wù)的業(yè)務(wù)數(shù)據(jù)嗎?” 記住所有那些他必須重寫的乏味的if語句,程序員變得很生氣?!笆紫仁莤ml,然后是SQL,現(xiàn)在是Web服務(wù)!真正的業(yè)務(wù)數(shù)據(jù)源是什么?”


老板回答:“任何可以提供的東西”


那時(shí),程序員很受啟發(fā)。


查看完整回答
反對 回復(fù) 2019-11-30
  • 3 回答
  • 0 關(guān)注
  • 1099 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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