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ā)同樣也是類(lèi)似的:
• 按照接口規(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)文章
微信java開(kāi)發(fā)之實(shí)現(xiàn)微信主動(dòng)推送消息
這篇文章主要介紹了微信開(kāi)發(fā)過(guò)程中的使用java實(shí)現(xiàn)微信主動(dòng)推送消息示例,需要的朋友可以參考下2014-03-03
jfinal中stateless模式嵌入shiro驗(yàn)證的實(shí)現(xiàn)方式
這篇文章主要介紹了jfinal中stateless模式嵌入shiro驗(yàn)證,今天,我們就來(lái)嘗試一種通過(guò)攔截器來(lái)實(shí)現(xiàn)的Stateless Jfinal嵌入方式,需要的朋友可以參考下2022-06-06
Spring組件開(kāi)發(fā)模式支持SPEL表達(dá)式
今天小編就為大家分享一篇關(guān)于Spring組件開(kāi)發(fā)模式支持SPEL表達(dá)式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
Java使用Preference類(lèi)保存上一次記錄的方法
這篇文章主要介紹了Java使用Preference類(lèi)保存上一次記錄的方法,較為詳細(xì)的分析了Preference類(lèi)的使用技巧,需要的朋友可以參考下2015-05-05
Spring boot redis cache的key的使用方法
這篇文章主要介紹了Spring boot redis cache的key的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
利用Netty+SpringBoot實(shí)現(xiàn)定時(shí)后端向前端推送數(shù)據(jù)
這篇文章主要介紹了BIO、NIO、AIO三種Java?IO模型,并探討了如何使用Spring?Boot集成Netty實(shí)現(xiàn)后臺(tái)向前端推送信息的功能,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
mybatis plus 開(kāi)啟sql日志打印的方法小結(jié)
Mybatis-Plus(簡(jiǎn)稱(chēng)MP)是一個(gè) Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡(jiǎn)化開(kāi)發(fā)、提高效率而生。本文重點(diǎn)給大家介紹mybatis plus 開(kāi)啟sql日志打印的方法小結(jié),感興趣的朋友一起看看吧2021-09-09
SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

