Java接口的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
1. 接口是一種規(guī)范
很好,你已經(jīng)知道接口是一種規(guī)范了!
下面這張圖是我們生活中遇到的接口:電源插座接口。
2. 為什么需要規(guī)范呢?
因?yàn)橛辛私涌谝?guī)范:
• 任何電器只有有符合規(guī)范的插頭,就可以獲得電力
• 任何廠家(西門(mén)子插座,TCL插座,公牛插座...)按照規(guī)范進(jìn)行制作,就能進(jìn)行供電
每個(gè)廠家插座的生產(chǎn)技術(shù)、工藝都不一樣,因?yàn)榻涌诘膇mplementation可以不一樣,但是并不影響電器的正常工作。插座的內(nèi)部實(shí)現(xiàn)對(duì)于電器來(lái)說(shuō)是完全屏蔽的。
對(duì)于軟件開(kāi)發(fā)同樣也是類似的:
• 按照接口規(guī)范進(jìn)行方法調(diào)用,就能獲得所期望的功能
• 按照接口規(guī)范實(shí)現(xiàn)接口的的方法,就能提供所期望的功能
接下來(lái)是重點(diǎn)了:
• 軟件開(kāi)發(fā)大多是一個(gè)協(xié)作性的工作:電器和插座分別是不同人完成的,有了接口大家就能分頭開(kāi)干,都按照接口來(lái)辦事,各自做完就能輕松地整合到一起。各部分的測(cè)試也更加方便。
• 軟件需要不斷演化:今天你用了公牛的插座,過(guò)了一年你可能換個(gè)西門(mén)子的插座,要做沒(méi)有這套國(guó)家接口標(biāo)準(zhǔn),各自為政,那估計(jì)你是換不了插座了。你想想,咱們每次去美國(guó)出差,都得帶個(gè)轉(zhuǎn)接頭,否則就跪了,多不方便啊,因?yàn)榻涌谝?guī)范不同啊?。ㄟ@些個(gè)轉(zhuǎn)接頭你是不是聞道一種濃濃的Adapter模式的味道)。
3. 什么時(shí)候需要通過(guò)接口建立規(guī)范
為了抽象系統(tǒng)的某種公共行為,或者封裝變化性,進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候你需要抽取出接口,這樣將來(lái)你的系統(tǒng)將更加靈活。而你所說(shuō)的,直接寫(xiě)實(shí)現(xiàn)的方式在確定性的場(chǎng)景下當(dāng)然也可以,不涉及到分工協(xié)作、變化性、測(cè)試方便等因素時(shí),當(dāng)然用不著接口了。比如一般情況下你犯不著為一個(gè)Pojo的getter和setter也弄個(gè)接口和實(shí)現(xiàn)分離。所以面向?qū)ο蟮拇笊駛冏巫尾痪氲亟虒?dǎo)我們說(shuō):接口和實(shí)現(xiàn)分離,面向接口編程。
以上所述是小編給大家介紹的Java接口的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
基于SpringBoot實(shí)現(xiàn)發(fā)送帶附件的郵件
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)發(fā)送帶附件的郵件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11Java多線程run方法中直接調(diào)用service業(yè)務(wù)類應(yīng)注意的問(wèn)題及解決
這篇文章主要介紹了Java多線程run方法中直接調(diào)用service業(yè)務(wù)類應(yīng)注意的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06基于Java語(yǔ)言在窗體上實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲的完整步驟
這篇文章主要給大家介紹了基于Java語(yǔ)言在窗體上實(shí)現(xiàn)飛機(jī)大戰(zhàn)小游戲的完整步驟,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02Java使用HashMap映射實(shí)現(xiàn)消費(fèi)抽獎(jiǎng)功能
這篇文章主要為大家詳細(xì)介紹了Java使用HashMap映射實(shí)現(xiàn)消費(fèi)抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09如何解決springboot數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)的時(shí)區(qū)差異問(wèn)題
這篇文章主要介紹了如何解決springboot數(shù)據(jù)庫(kù)查詢時(shí)出現(xiàn)的時(shí)區(qū)差異問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01IDEA 2020.2 部署JSF項(xiàng)目的詳細(xì)過(guò)程
本文通過(guò)圖文并茂的形式教大家如何在IDEA中創(chuàng)建一個(gè)JSF項(xiàng)目及遇到問(wèn)題的解決方法,感興趣的朋友跟隨小編一起看看吧2021-09-09SpringBoot Session接口驗(yàn)證實(shí)現(xiàn)流程詳解
這篇文章主要介紹了SpringBoot+Session實(shí)現(xiàn)接口驗(yàn)證(過(guò)濾器+攔截器)文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09java之向linux文件夾下寫(xiě)文件無(wú)權(quán)限的問(wèn)題
這篇文章主要介紹了java之向linux文件夾下寫(xiě)文件無(wú)權(quán)限的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09