栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Eclipse RCP中的全局变量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Eclipse RCP中的全局变量

有一些选择。


快速而肮脏的方法是将全局变量的吸气剂放入您的一个插件的激活器中。然后,您就可以像这样全局获取:

SomePluginActivator.getDefault().getGlobalData()

这具有使插件紧密耦合的缺点,这在一定程度上违背了插件体系结构的精神。


第二种方法是使用工作台服务。尽管它在

org.eclipse.ui
您的插件中引入了对它的依赖,但这会更好一些。在提供全局数据的插件中,创建的扩展
org.eclipse.ui.services
。您定义服务接口和服务工厂。工厂应返回该接口的实现。您的客户通过向服务定位器询问服务接口的实例来检索全局服务的实例。该平台使用您的工厂来创建服务实例:

IMyGlobalService service = (IMyGlobalService)PlatformUI.getWorkbench().getService(IMyGlobalService.class);

这是熟悉的服务定位器模式。这种方法的好处是,某些全局数据的使用者不需要知道数据的来源。为了增加灵活性,您可以在一个插件中声明接口,并在另一个插件中声明工厂和实现,以便可以换出实现。


第三种方法是使用扩展点。我自己还没有尝试过,但是看来您应该能够在提供全局数据的插件中声明扩展点,然后将全局数据注入到对其进行扩展的插件中。


最后一种方法是使用OSGi服务。我最不熟悉这种方法。您将编写OSGi服务,其他插件将使用OSGi框架来定位服务。这类似于上面的工作台服务,但是它不直接使用Eclipse
RCP。您还应该阅读有关白板图案的信息(警告:PDF链接)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号