RCP還是新興的東西,大家都是用它做做小東東,所以在網上討論RCP深度應用的文章還不多。
在此作文N篇闡述一下我在項目中的實現思路,歡迎大家拍磚。
首先看一下我們的項目的總體架構:
這個圖誰都會畫,就不說了,只是說明我們在用RCP而已。
再看看Client這層是怎么組成的:
依賴關系是自上而下的~,當然大家都需要依賴RCP-RUNNTIME本身。
jar plugin ---將第三方jar包包裝成plugin樣子,以供其他的插件依賴,解決了RCP項目對第三方包依賴麻煩的問題,例子:junit插件的實現;
DMP Platform ---DMP是我們產品的名字,所以,不要立即google,在這層我們抽象的定義出大量的公共的CoolBar以及MenuBar,都是尚未實現的,以待業務擴充之用,最重要的是在這層中我們集中處理權限問題,后面會說到;
業務組建(plugin)---其實就是針對于DMP Platform編寫的一大堆的插件,而這些插件則是業務相對獨立,這樣就遵守了Eclipse的原則,所有東西都以插件形式提供的,也方便了我們以后對軟件的定制化開發;
縱觀國內外RCP的應用(國內本身就是很少),很少有RCP應用使用Eclipse的思想進行開發的,都是一個項目直接上~就一個UI層~什么都有!如果是這樣,還不如用VC,VB更簡單~
Eclipse RCP最好的應用還是Eclipse本身,Platform僅僅提供對文件的最簡單的管理能力,而且定義一堆共用的Action,其他東西(JDT,ANT,JUNIT等等)都是以插件形式出現的~只有有了插件,才有了RCP業務動態擴充的動態組合的新理念。
客戶虐我千百遍,我待客戶如初戀!