OSGI:從面向接口編程來理解OSGI


接口的種類(API和SPI)

從接口的被調用方式和被實現方式看,接口有API和SPI之分,見下圖:

API和SPI在物理組織方式上的建議(可根據情況選擇其一)

    • 位於獨立的Assembly中。
    • 位於調用方的Assembly中。

API和SPI的演化方式:

    • API可以增加功能,最好保持穩定。
    • SPI可以減少功能,最好保持穩定。

API和SPI的交互方式見下圖:

如何實例化接口(避免不了的問題)

  • 簡單工廠(三種工廠模式都引入了新的抽象,因此最終還是要用簡單工廠創建抽象的。適用於根據上下文實例化不同實例的場景)。
  • 服務定位器(適用於實例化邊界對象或根對象的場景)。
  • 依賴注入容器(適用於多數場景,推薦用這種方式)。

從面向接口編程的角度考慮,為什么采用OSGI?

剛才我們介紹了接口和如何實例化接口,OSGI只是更進一步,允許你動態的管理具體實現Assembly的生命周期。多數應用可能不需要這種動態,但是如果您發現OSGI對程序的侵入性不大(它唯一的要求就是面向接口編程),而您已經早就習慣了面向接口編程,那么OSGI對於您來說應該不是大問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM