Java接口的作用_動力節(jié)點Java學(xué)院整理
1. 接口是一種規(guī)范
很好,你已經(jīng)知道接口是一種規(guī)范了!
下面這張圖是我們生活中遇到的接口:電源插座接口。

2. 為什么需要規(guī)范呢?
因為有了接口規(guī)范:
• 任何電器只有有符合規(guī)范的插頭,就可以獲得電力

• 任何廠家(西門子插座,TCL插座,公牛插座...)按照規(guī)范進(jìn)行制作,就能進(jìn)行供電
每個廠家插座的生產(chǎn)技術(shù)、工藝都不一樣,因為接口的implementation可以不一樣,但是并不影響電器的正常工作。插座的內(nèi)部實現(xiàn)對于電器來說是完全屏蔽的。
對于軟件開發(fā)同樣也是類似的:
• 按照接口規(guī)范進(jìn)行方法調(diào)用,就能獲得所期望的功能
• 按照接口規(guī)范實現(xiàn)接口的的方法,就能提供所期望的功能
接下來是重點了:
• 軟件開發(fā)大多是一個協(xié)作性的工作:電器和插座分別是不同人完成的,有了接口大家就能分頭開干,都按照接口來辦事,各自做完就能輕松地整合到一起。各部分的測試也更加方便。
• 軟件需要不斷演化:今天你用了公牛的插座,過了一年你可能換個西門子的插座,要做沒有這套國家接口標(biāo)準(zhǔn),各自為政,那估計你是換不了插座了。你想想,咱們每次去美國出差,都得帶個轉(zhuǎn)接頭,否則就跪了,多不方便啊,因為接口規(guī)范不同?。。ㄟ@些個轉(zhuǎn)接頭你是不是聞道一種濃濃的Adapter模式的味道)。
3. 什么時候需要通過接口建立規(guī)范
為了抽象系統(tǒng)的某種公共行為,或者封裝變化性,進(jìn)行系統(tǒng)設(shè)計的時候你需要抽取出接口,這樣將來你的系統(tǒng)將更加靈活。而你所說的,直接寫實現(xiàn)的方式在確定性的場景下當(dāng)然也可以,不涉及到分工協(xié)作、變化性、測試方便等因素時,當(dāng)然用不著接口了。比如一般情況下你犯不著為一個Pojo的getter和setter也弄個接口和實現(xiàn)分離。所以面向?qū)ο蟮拇笊駛冏巫尾痪氲亟虒?dǎo)我們說:接口和實現(xiàn)分離,面向接口編程。
以上所述是小編給大家介紹的Java接口的作用_動力節(jié)點Java學(xué)院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
jfinal中stateless模式嵌入shiro驗證的實現(xiàn)方式
這篇文章主要介紹了jfinal中stateless模式嵌入shiro驗證,今天,我們就來嘗試一種通過攔截器來實現(xiàn)的Stateless Jfinal嵌入方式,需要的朋友可以參考下2022-06-06
Spring boot redis cache的key的使用方法
這篇文章主要介紹了Spring boot redis cache的key的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
利用Netty+SpringBoot實現(xiàn)定時后端向前端推送數(shù)據(jù)
這篇文章主要介紹了BIO、NIO、AIO三種Java?IO模型,并探討了如何使用Spring?Boot集成Netty實現(xiàn)后臺向前端推送信息的功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-01-01
mybatis plus 開啟sql日志打印的方法小結(jié)
Mybatis-Plus(簡稱MP)是一個 Mybatis 的增強(qiáng)工具,在 Mybatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生。本文重點給大家介紹mybatis plus 開啟sql日志打印的方法小結(jié),感興趣的朋友一起看看吧2021-09-09
SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于SpringBoot內(nèi)存數(shù)據(jù)導(dǎo)出成Excel的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

