應用軟件提供使插件能夠應用的各項服務,其中包括提供加載方式,使插件可以加載到應用程序和網(wǎng)絡傳輸協(xié)議中,從而和插件進行數(shù)據(jù)交換。插件必須依賴于應用程序才能發(fā)揮自身功能,僅靠插件是無法正常運行的。相反地,應用程序并不需要依賴插件就可以運行,這樣一來,插件就可以加載到應用程序上并且動態(tài)更新而不會對應用程序造成任何改變。
公開應用程序接口提供一個標準的界面,允許其他人編寫插件和應用程序互動。一個穩(wěn)定的應用程序接口會允許 其他插件正常運行即使其最初的版本有所變動,也會支持插件延長老舊的應用程序的使用壽命。Adobe Photoshop 和After Effects的插件應用程序接口逐漸成為標準,并且被一些和它們競爭的應用程序部分采納。另外一些象這樣的應用程序接口包括Audio Units和VST。
就好比一個網(wǎng)絡轉換器也許會運載一個未被占用但不標準的端口來容納各種任選的物理層連接器。而游戲和某些應用程序經(jīng)常使用插件的體系結構來允許最初的發(fā)行者和第三方發(fā)行者增加功能性。
生產(chǎn)廠家可以用插件來產(chǎn)生賣方鎖定,就是通過選擇限制更新這個選項使得廠商簽署的買方才可以更新使用其產(chǎn)品。IBM的Micro Channel Architecture,從技術上來會說,比Industry Standard Architecture更為先進,可以給IBM的個人電腦添加組成,但是因為很難給第三方的裝置設備獲取證明而未能大面積推廣。微軟的Flight Simulator系列比較著名就是因為它可以下載aircraft附件。
PHP項目中很多用到插件的地方,更尤其是基礎程序寫成之后很多功能由第三方完善開發(fā)的時候,更能用到插件機制,現(xiàn)在說一下插件的實現(xiàn)。特點是無論你是否激活,都不影響主程序的運行,即使是刪除也不會影響。
從一個插件安裝到運行過程的角度來說,主要是三個步驟:
1.插件安裝(把插件信息收集進行采集和記憶的過程,比如放到數(shù)據(jù)庫中或者XML中)
2.插件激活(打開插件,讓監(jiān)聽插件的地方開始進行調用)
3.插件運行(插件功能的實現(xiàn))
從一個插件的運行上來說主要以下幾點:
1.插件的動態(tài)監(jiān)聽和加載(插件的信息獲?。?br />
2.插件的動態(tài)觸發(fā)(插件的運行)
一個完善的插件系統(tǒng)主要包括以下:
1.插件安裝及卸載
2.插件打開與關閉
3.插件信息獲取
4.插件調度(插件經(jīng)理)
5.插件主體