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