大型RCP项目降低插件依赖度
软件产品的规模总是越来越大,模块越来越多,如果出现了一点影响到后继开发或者维护的迹象,就要果断的进行重构,将项目及时调整到正常轨道上。开发RCP项目中遇到的典型就是随着插件数量的增多,各个插件之间的依赖性越来越强,这时候如果不进行及时调整,任由其发展下去,等到出现了插件循环依赖,再回过头来整改可就不是那么容易了。很有可能还要影响到相关的业务功能部件。 任何软件系统到了一定的规模后,都可能会产生模块间的无序依赖。造成这种后果的原因可以总结为以下几种: 1. 封装性不好,随意开放公共类或接口给第三方使用。造成客户代码深度依赖于此模块。 对应于Eclipse插件开发,可以理解为: 1. 在plugin.xml文件的runtime项中,不加限制的开放所有Package的访问权限;或者在开发过程中,没有限制,随需随开,不知不觉中加剧了插件间的依赖程度。而且由于降低的访问的门槛,容易养成编程人员的懒惰思想,不利于提高其设计能力。 可供选择的解决方案如下: 1. 构建良好的接口体系,外部插件对本插件的依赖仅限于抽象。 2. 提取公共部件到一个基础插件中,其中包括全项目共享的服务和资源。全部插件都依赖于此基础插件。 3. 插件不依赖于具体提供服务的插件,而是依赖于基础插件,提供服务的插件将服务注册到基础插件中。这样就构建了一个服务注册,获取体系。减轻了各个插件间的依赖程度,降低了服务提供者和服务使用者之间的耦合。此体系可通过扩展点机制实现。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |