在Eclipse RCP应用中利用扩展点机制解藕插件的依赖关系

本文介绍了如何在Eclipse RCP应用程序中通过扩展点机制来解耦插件间的依赖关系。以一个具体的业务场景为例,展示了如何定义扩展点、使用扩展点以及加载扩展点,从而实现插件间的交互而不引入强依赖。
摘要由CSDN通过智能技术生成

Eclipse RCP应用中利用扩展点机制解藕插件的依赖关系

 

在开发Eclipse RCP应用程序时,我们按照Eclipse插件的思路来组织和划分我们的程序模块,会使系统结构得到很大改善:比如,系统功能的灵活装配,系统的增量开发等。为了达到这种效果,我们要尽量减少插件之间的依赖关系。Eclipse平台中提供的扩展点机制可以用来实现这种目标。

 

一、业务场景

 

下面以一个具体的业务场景来说明:

比如,在我们的某个应用中,有WorkspaceDocumentJob三种业务功能,我们用三个Eclipse插件工程(WorkspacePluginDocumentPluginJobPlugin)分别来实现这些功能。

在三个插件中,WorkspaceView管理所有的Workspace业务对象,DocumentView管理所有的Document业务对象,JobView管理所有的Job业务对象。

同时,这三种业务不是孤立的,它们之间是有交互的:打开WorkspaceView中的某个WorkspaceDocumentView会作相应改变:显示该Workspace下的所有Document。同样,JobView也会根据Workspace的变化作相应的改变。

 

针对以上的业务场景,一种自然的做法是,在WorkspacePlugin中添加对另外两个插件的引用,直接在WorkspaceView中调用DocumentViewJobView的相关方法。

但是这种做法导致了三个插件之间比较强的依赖关系,和我们的系统功能的灵活装配的目标有所差距。下面我们利用Eclipse扩展点机制来解决这种问题。

 

二、定义扩展点

 

不难看出,上述场景是一个典型的Observer模式的应用:WorkspaceView是交互的发起者,而DocumentViewJobView是交互的监听者。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值