基本介紹
- 中文名:基於接口編程
- 外文名:Based on the programming interface
- 簡稱:BPI
- 作用:程式開發
- 思想體系:面向對象編程
- 使用語言:程式語言
簡介,接口的本質,面向接口編程綜述,
簡介
基於接口編程(Interface-based programming)也稱基於接口的架構(interface-based architecture),它是一種在沒有模組系統的面向對象程式設計語言中的組件層面實現模組化編程的架構模式。匹配此例的一個語言是Java,截至2015年,它沒有組件級別的模組系統。Java有一個包(package)系統,但Java軟體組件通常由多個Java包組成——並且在任何情況下,接口編程可以提供優於僅使用Java包的優勢,即使組件僅由單個Java包組成。
這種方式被認為增加了應用程式的模組性並因而增加了可維護性。但是,有必要謹慎考慮——僅將應用程式分解成通過接口通信的任意組件本身不能保證低耦合性或高內聚性,這兩項通常被認為是可維護性的另外兩項關鍵屬性。
當第三方(或同一個組織內的另一個團隊)為已創建的系統開發了額外的組件或外掛程式時,可以使用基於接口體系結構。Eclipse IDE的代碼庫就是基於接口編程的一個例子。Eclipse外掛程式外掛程式供應商只需開發滿足父應用程式供應商Eclipse基金會指定接口的組件。在Eclipse中,哪怕“Java開發工具”等原始組件本身也是一個外掛程式。這有點像行動電話製造商制定的移動充電器接口(引腳布局、預期直流電電壓等)和,製造商和第三方都製造匹配這種標準接口規範的手機充電器。
接口的本質
接口,在表面上是由幾個沒有主體代碼的方法定義組成的集合體,有唯一的名稱,可以被類或其他接口所實現(或者也可以說繼承
1)接口是一組規則的集合,它規定了實現本接口的類或接口必須擁有的一組規則。
體現了自然界“如果你是……則必須能……”的理念。
例如,在自然界中,人都能吃飯,即“如果你是人,則必須能吃飯”。那么模擬到電腦程式中,就應該有一個IPerson(習慣上,接口名由“I”開頭)接口,並有一個方法叫Eat(),然後規定,每一個表示“人”的類,必須實現IPerson接口,這就模擬了自然界“如果你是人,則必須能吃飯”這條規則。
面向對象思想的核心之一,就是模擬真實世界,把真實世界中的事物抽象成類,整個程式靠各個類的實例互相通信、互相協作完成系統功能,這非常符合真實世界的運行狀況,也是面向對象思想的精髓。
2)接口是在一定粒度視圖上同類事物的抽象表示。
因為“同類事物”這個概念是相對的,它因為粒度視圖不同而不同。
接口得以存在的意義。面向對象思想和核心之一叫做多態性,就是在某個粒度視圖層面上對同類事物不加區別的對待而統一處理。
面向接口編程綜述
在系統分析和架構中,分清層次和依賴關係,每個層次不是直接向其上層提供服務(即不是直接實例化在上層中),而是通過定義一組接口,僅向上層暴露其接口功能,上層對於下層僅僅是接口依賴,而不依賴具體類。
這樣做的好處是顯而易見的,首先對系統靈活性大有好處。當下層需要改變時,只要接口及接口功能不變,則上層不用做任何修改。甚至可以在不改動上層代碼時將下層整個替換掉,使用接口的另一個好處就是不同部件或層次的開發人員可以並行開工,只要接口一致,設計合理,完全可以並行進行開發,從而提高效率。