1. 程式人生 > >面向介面程式設計及面向介面程式設計的好處

面向介面程式設計及面向介面程式設計的好處

一:什麼是介面?

介面指的是隻含有抽象方法的類(抽象類的定義是隻要含有一個抽象方法的類,當然也可以含有多個)。在其中的方法只能是public的並且我們不能new一抽象類。JAVA中引入介面很大的原因是為了彌補JAVA中的沒有的多繼承機制。

二:面向介面程式設計:

因為介面是一種定義,我們大多時候站在一個系統的角度來看問題時我們更多關注系統中物件與物件的關係和模組與模組間的定義,我們不必一起考慮每個物件中資料是怎麼操作的。介面更多的就是定義一種標準,表達一種物件與物件或者模組與模組間的關係。因為我們要進行模組實現的時候我們才去考慮系統內部的實現。

三:面向介面程式設計的好處:

面向介面程式設計最直觀的好處就是高內聚,低耦合,這也是java一直所強調的。JAVA執行父類指向子類的引用,因此面向介面程式設計就很好的解耦。這也為我們的程式提供很大的方便,比如我們系統底層需要變化的時候我們不需去考慮上層介面,只要我們面向介面這一套標準去進行程式設計那麼我們就可以實現。當然這也提高了程式的可擴充套件性,這一點在很多框架,JDBC上都得以體現,比如現在很多商用的資料,JAVA只需要給出一套標準及介面,讓公司自己去實現這些介面就可以。

四:面向介面綜述:

通過上文,我想大家對介面和介面的思想內涵有了一個瞭解,那麼什麼是面向介面程式設計呢?我個人的定義是:在系統分析和架構中,分清層次和依賴關係,每個層次不是直接向其上層提供服務(即不是直接例項化在上層中),而是通過定義一組介面,僅向上層暴露其介面功能,上層對於下層僅僅是介面依賴,而不依賴具體類。

這樣做的好處是顯而易見的,首先對系統靈活性大有好處。當下層需要改變時,只要介面及介面功能不變,則上層不用做任何修改。甚至可以在不改動上層程式碼時將下層整個替換掉,就像我們將一個WD的60G硬碟換成一個希捷的160G的硬碟,計算機其他地方不用做任何改動,而是把原硬碟拔下來、新硬碟插上就行了,因為計算機其他部分不依賴具體硬碟,而只依賴一個IDE介面,只要硬碟實現了這個介面,就可以替換上去。從這裡看,程式中的介面和現實中的介面極為相似,所以我一直認為,介面(interface)這個詞用的真是神似!


使用介面的另一個好處就是不同部件或層次的開發人員可以並行開工,就像造硬碟的不用等造CPU的,也不用等造顯示器的,只要介面一致,設計合理,完全可以並行進行開發,從而提高效率。