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业务动态扩充的动态组合的新理念。
客户虐我千百遍,我待客户如初恋!