平臺(tái)+插件技術(shù)算是一種古老的技術(shù)了,Windows OS為我們提供了大量Win32 API就是所謂的編程接口,我們基于Windows編的程序就是OS的插件,離開它就無法運(yùn)行。平臺(tái)插件技術(shù)在翻新,隨著Eclipse的風(fēng)靡,這種模式一直不衰,然而思想是陳舊的,這里我談點(diǎn)自己的看法。
淺釋平臺(tái)插件
什么叫臺(tái)呢?臺(tái),觀四方而高者——《說文》。一個(gè)四方的高的平臺(tái),給你一種支撐。
舞臺(tái)給演員提供了展示自我的地方,有音響、燈光、帷幕等,而每個(gè)演員好比插件,可能是一個(gè)歌唱家、相聲演員、舞蹈家。演員踏著臺(tái)階來到幕后,帷幕拉起,演員進(jìn)場(chǎng)在燈光和音響下表演,結(jié)束后退到幕后,帷幕拉下,然后是另一個(gè)演員上場(chǎng)。離開舞臺(tái),演員就成了普通人。一個(gè)舞臺(tái)可以成就很多藝人,他們有各自不同的風(fēng)格,然而他們都是藝術(shù)家,不是政客或商人,他們站在舞臺(tái)上是表演藝術(shù)的。
平臺(tái)插件體系也是如此。平臺(tái)是用來解決一類問題的基礎(chǔ)設(shè)施,它提供了解決問題的工具、遵守的法則以及插件體系管理。有了數(shù)字運(yùn)算工具以及運(yùn)算法則(先加減后乘除),我們可以解決所有的四則運(yùn)算問題。以前做地理系統(tǒng)中有這樣問題,拉動(dòng)網(wǎng)格中節(jié)點(diǎn)。這個(gè)問題包含類兩個(gè)方面,首先拉動(dòng)會(huì)導(dǎo)致數(shù)據(jù)更新,然后是拉動(dòng)要遵守規(guī)則--節(jié)點(diǎn)所有相連線要跟隨拖動(dòng)。這里變可以把這兩個(gè)基礎(chǔ)服務(wù)放入平臺(tái),移動(dòng)規(guī)則和數(shù)據(jù)修改。這樣用戶做一個(gè)插件集成到平臺(tái)里面,拖動(dòng)網(wǎng)格中的一個(gè)節(jié)點(diǎn),按照規(guī)則找到所有相連線,然后對(duì)這些線進(jìn)行數(shù)據(jù)更新。
典型應(yīng)用平臺(tái)插件模式
平臺(tái)插件的優(yōu)點(diǎn)
1、平臺(tái)發(fā)布后,在平臺(tái)不動(dòng)的前提下通過插件可以使功能擴(kuò)展。試想我們?cè)诓僮飨到y(tǒng)上做了多少軟件。
2、功能的重用,平臺(tái)本身是對(duì)所解決問題的一個(gè)同類項(xiàng)合并過程,提出公因式,這樣便提高了模塊的復(fù)用率。
3、職責(zé)清晰,平臺(tái)提供功能接口,插件只需要按照接口規(guī)范實(shí)現(xiàn)調(diào)用即可,至于平臺(tái)內(nèi)部功能的優(yōu)化只要不涉及接口,都是沒有問題的。
4、產(chǎn)品研發(fā)周期縮短。平臺(tái)以及核心業(yè)務(wù)實(shí)現(xiàn)后即可推出產(chǎn)品,擴(kuò)展功能可以在后續(xù)版本以插件方式開發(fā)或交由其他二次開發(fā)公司開發(fā)。
5、基于組件的平臺(tái)本身支持多種語言二次開發(fā),可以降低二次開發(fā)難度,提高開發(fā)效率。
平臺(tái)插件的不足
1、接口的制定比較困難,由于接口的改動(dòng)會(huì)影響很大,所以插件接口的指定很重要。可能由于功能的不斷需要導(dǎo)致接口混亂。
2、基礎(chǔ)服務(wù)功能粒度的難以把握。粒度太細(xì)可能導(dǎo)致模塊增多難以控制,粒度太粗復(fù)用率太低。
3、基于COM做的時(shí)候引用計(jì)數(shù)的維持很可怕,接口查詢成千上萬,被一個(gè)馬虎的程序員弄錯(cuò)一次就導(dǎo)致組件無法釋放。
(2006.7.5于北京華亭)
posted on 2006-07-05 20:44
萬連文 閱讀(1898)
評(píng)論(4) 編輯 收藏 引用 所屬分類:
ATL 、
亂七八糟