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