這篇文章給大家分享的是有關Java接口編程之意義與優(yōu)勢是什么的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目做網(wǎng)站、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元潘集做網(wǎng)站,已為上家服務,為潘集各地企業(yè)和個人服務,聯(lián)系電話:18980820575
在項目中的意義:
在傳統(tǒng)的項目開發(fā)過程中,由于客戶的需求經(jīng)常變化,如果不采用面向接口編程,那么我們必須不停改寫現(xiàn)有的業(yè)務代碼。改寫代碼可能產(chǎn)生新的BUG,而且改寫代碼還會影響到調(diào)用該業(yè)務的類,可能全都需要修改,影響系統(tǒng)本身的穩(wěn)定性。而且為了將改寫代碼帶來的影響最小,我們不得不屈服當前的系統(tǒng)狀況來完成設計,代碼質(zhì)量和穩(wěn)定性更低。當這種情況積累到一定程度時,系統(tǒng)就會出現(xiàn)不可預計的錯誤,代碼凌亂,不易讀懂,后接手的人無法讀懂代碼,系統(tǒng)的維護工作越來越重,最終可能導致項目失敗。
接口在項目就是一個業(yè)務邏輯,面向接口編程就是先把客戶的業(yè)務提取出來,作為接口。業(yè)務具體實現(xiàn)通過該接口的實現(xiàn)類來完成。當客戶需求變化時,只需編寫該業(yè)務邏輯的新的實現(xiàn)類,通過更改配置文件(例如Spring框架)中該接口的實現(xiàn)類就可以完成需求,不需要改寫現(xiàn)有代碼,減少對系統(tǒng)的影響。
采用基于接口編程的項目,業(yè)務邏輯清晰,代碼易懂,方便擴展,可維護性強。即使更換一批人員,新來的人依然可以快速上手。對于公司來說,意義更大。
在Java中的意義:
Java本身也是一個不斷完善的語言,他也在頻繁的改動他的系統(tǒng)API來完善,他的API是一個龐大的體系,互相關聯(lián),如果不采用接口,而都是用實現(xiàn)類的話,那么API的改動就會給整個體系帶來不穩(wěn)定。而且如果改動API,那么就會有大量采用舊API的項目因無法正常運行,會損失大量客戶。換句話說,JDK已經(jīng)發(fā)布的API是一種承諾,一經(jīng)發(fā)布就不能更改,即使原來API存在各種各樣的問題(例如java.util.Properties類就是一個失敗的例子)也必須保留,于是在Java里就出現(xiàn)了不建議使用的方法,但JDK依然提供該方法。而且Java語言本身是一個跨平臺的語言,為了滿足在各個平臺下運行,就必須把各種操作做成接口,在編寫各個平臺下的實現(xiàn)類。
設計模式的體現(xiàn):
在設計模式的原則里的開閉原則,其實就是要使用接口來實現(xiàn)對擴展開放,對修改關閉。在設計模式的其他原則里也有關于基于接口編程的原則,即依賴倒轉(zhuǎn)的設計原則(DIP)----高層模塊不應該依賴于底層模塊。二者都應該依賴于抽象;抽象不應該依賴于細節(jié),細節(jié)應該依賴于抽象(注:來自《敏捷軟件開發(fā)--原則、模式與實踐》Robert C.Martin著)。在使用面向接口的編程過程中,將具體邏輯與實現(xiàn)分開,減少了各個類之間的相互依賴,當各個類變化時,不需要對已經(jīng)編寫的系統(tǒng)進行改動,添加新的實現(xiàn)類就可以了,不在擔心新改動的類對系統(tǒng)的其他模塊造成影響。
編程也是一門藝術,在C語言中靈活的使用指針是一門藝術,在面對對象的程序中,靈活的使用接口也是一門藝術?,F(xiàn)在項目中,功能越來越復雜,只設計了***的類,對于整個系統(tǒng)來說沒有多大意義,現(xiàn)在的項目更注重各個功能模塊的整合及可維護性,接口的設計就顯得更為重要了。程序設計不再是設計類的具體實現(xiàn),而是從整個項目出發(fā),設計出可擴展性強的接口。當你發(fā)現(xiàn)越來越靈活的使用接口時,那么你就從程序員升級為架構師了??上椰F(xiàn)在依然是一名程序員,正在像架構師努力。
在一些大型項目或者大型公司里,都是由架構師編寫出系統(tǒng)接口,具體的實現(xiàn)類交給了程序員編寫,公司越大這種情況越明顯,所以在這些公司里做開發(fā),我們可能都不知道編寫出的系統(tǒng)是個什么樣子,每天做的工作可能就是做“填空題”了。建議大家閱讀敏《捷軟件開發(fā)--原則、模式與實踐》Robert C.Martin著這本書,那么對如何進行接口編程就會有一個新的認識了。
***,希望大家都能成為一個優(yōu)秀的系統(tǒng)架構師。
我記得我曾經(jīng)在一篇帖子中提到過,一個接口可以從三方面去考察:
制定者(或者叫協(xié)調(diào)者),實現(xiàn)者(或者叫生產(chǎn)者),調(diào)用者(或者叫消費者)。
接口本質(zhì)上就是由制定者來協(xié)調(diào)實現(xiàn)者和調(diào)用者之間的關系。
所以通常說的“面向接口編程”可以理解為:
只有實現(xiàn)者和調(diào)用者都遵循“面向接口編程”這個準則,制定者的協(xié)調(diào)目的才能達到。
一個老生常談的例子就是JDBC。
優(yōu)點:
接口和實現(xiàn)分離了,適于團隊的協(xié)作開發(fā)。
更具體的優(yōu)點:可以參看IDP原則。
缺點:
設計難了,在你沒有寫實現(xiàn)的時候,就得想好接口,接口一變,全部亂套,這就是所謂的設計比實現(xiàn)難。
所以設計接口的人工資都高?。。。?/p>
感謝各位的閱讀!關于“Java接口編程之意義與優(yōu)勢是什么”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!