平臺+插件軟件設計基本思想

平臺+插件軟件設計基本思想
      插件的本質在於不修改程序主體(平臺)的情況下對軟件功能進行擴展與加強,當插件的接口公開後,任何公司或個人都可以製作自己的插件來解決一些操作上的不便或增加新的功能,也就是實現真正意義上的“即插即用”軟件開發。平臺+插件軟件結構是將一個待開發的目標軟件分爲兩部分,一部分爲程序的主體或主框架,可定義爲平臺,另一部分爲功能擴展或補充模塊,可定義爲插件。
      在進行軟件開發之前,是否採用平臺+插件結構進行軟件開發,還要依據具體的軟件需求情況進行確定,但一般來講,使用平臺+插件結構進行軟件設計會給所開發軟件增加新的生命力。當確定平臺+插件的軟件結構之後,就要分析哪些部分功能由主體完成,即平臺的基本功能,哪些部分功能由插件完成,即需要擴展的插件功能。平臺所完成的功能應爲一個軟件系統的核心和基礎,這些基本功能即可爲用戶使用,也可爲插件使用,就是又可以把平臺基本功能分爲兩個部分,內核功能和插件處理功能。平臺的內核功能是整個軟件的重要功能,一個軟件的大部分功能因由內核功能完成。平臺的插件處理功能用於擴展平臺和管理插件,爲插件操縱平臺和與插件通信提供標準平臺擴展接口。插件所完成的功能是對平臺功能的擴展與補充,一般插件完成系列化功能,例如:PHOTOSHOP的濾鏡插件完成對圖形的特殊效果處理,這些功能都有一些共性,可以進行集中管理,並且是可以定義出標準的插件接口。
      爲了實現平臺+插件結構的軟件設計需要定義兩個標準接口,一個爲由平臺所實現的平臺擴展接口,一個爲插件所實現的插件接口。這裏需要說明的是:平臺擴展接口完全由平臺實現,插件只是調用和使用,插件接口完全由插件實現,平臺也只是調用和使用。平臺擴展接口實現插件向平臺方向的單向通信,插件通過平臺擴展接口可獲取主框架的各種資源和數據,可包括各種系統句柄,程序內部數據以及內存分配等。插件接口爲平臺向插件方向的單向通信,平臺通過插件接口調用插件所實現的功能,讀取插件處理數據等。
      平臺插件處理功能包括插件註冊、管理和調用,以及平臺擴展接口的功能實現。插件註冊爲按照某種機制首先在系統中搜索已安裝插件,之後將搜索到的插件註冊到平臺上,並在平臺上生成相應的調用機制,這包括菜單選項、工具欄、內部調用等。插件管理完成插件與平臺的協調,爲各插件在平臺上生成管理信息以及進行插件的狀態跟蹤。插件調用爲調用各插件所實現的功能。平臺插件處理功能實現的另一部分功能爲平臺擴展接口的具體實現。
      平臺+插件軟件設計步驟包括:
1、 確定平臺基本功能和插件要完成系列化功能或擴展功能;
2、 定義平臺擴展接口和插件接口;
3、 完成平臺設計,主要是平臺插件處理功能;
4、 向插件開發者提供主平臺程序(執行代碼),公佈平臺擴展接口和插件要實現的接口,可能包括開發用的SDK;
5、 插件開發者按要求開發插件,實現插件接口,開發者可使用提供的主平臺程序測試插件;
6、 主平臺設計者繼續完成主平臺的內核功能,並可隨時公佈新增加主平臺擴展接口和插件接口;
7、 實現4-6步驟的良性循環,整個軟件系統不斷向前進化。
  平臺+插件軟件設計的優點:
1、 實現真正意義上的軟件組件的“即插即用”;
2、 在二進制級上集成軟件,減少大量的軟件重新編譯與發佈麻煩與時間;
3、 能夠很好實現軟件模塊的分工開發,能夠大量吸取他人的優長;
4、 可較好實現代碼隱藏,保護知識產權。

本文出處:http://kankan.blog.51cto.com/372369/97341

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章