OSGi平臺為我們提供了強大的動態(tài)特性,通過分析我們可以發(fā)現(xiàn)這些動態(tài)特性的實現(xiàn)與很多常用的設(shè)計模式相關(guān),了解其中原理直接將這些模式用于我們的應(yīng)用開發(fā),也可以有效地實現(xiàn)動態(tài)特性。
1 Broker模式:實現(xiàn)服務(wù)提供者與服務(wù)使用者的分離及解耦。Bundle通過所能提供的服務(wù)將自己注冊至Framework,調(diào)用者通過Framework查找所需的服務(wù)。Bundle的服務(wù)注冊是實現(xiàn)服務(wù)自動發(fā)現(xiàn)的基礎(chǔ)。

2 監(jiān)聽者模式:這是實現(xiàn)動態(tài)特性的關(guān)鍵,通過監(jiān)聽者模式服務(wù)的使用者(實現(xiàn)監(jiān)聽接口)可以獲得所依賴的服務(wù)提供者(Bundle)的狀態(tài)變化的通知,從而動態(tài)處理與服務(wù)提供者間的關(guān)系以實現(xiàn)動態(tài)特性,不僅如此OSGi Framework自身同樣有效的融合了這種通知機制,使得實現(xiàn)監(jiān)聽者接口的Bundle可以了解Framework的狀態(tài)變化。

在我們的應(yīng)用系統(tǒng)中借鑒OSGi的原理,同樣可以有效地實現(xiàn)動態(tài)特性。
蔡超
軟件架構(gòu)師
軟件架構(gòu)顧問
SCEA,SCBCD
IBM Certified Solution Designer for OOA&D vUML2
Chaocai2001@yahoo.com.cn