当前位置:  开发笔记 > 编程语言 > 正文

在开发基于模块或插件的系统时应该如何开始?

如何解决《在开发基于模块或插件的系统时应该如何开始?》经验,为你挑选了1个好方法。

我打算开发一个完全基于模块的系统.系统库应该支持查找插件,启动它们并能够为这些模块提供通信方式.理想情况下,应该能够放入新模块并随意抽出未使用的模块,并且模块应该能够使用彼此的功能(如果可用).

该系统应该用作仿真系统的基础,其中许多东西发生在不同的模块中,而其他模块可能想要基于此做某事.

我打算开发的系统将采用Java语言.我看到它的方式,我打算为每个模块都有一个包含子文件夹的文件夹,其中包含一个XML,用于描述模块的信息,例如名称,可能会引发哪些事件,类似的东西.我想我可能需要编写一个自定义的ClassLoader来处理这些东西.

问题是,我不知道我的想法是否真的有水,当然,我打算建立一个工作原型.但是,我之前从未使用过真正的模块化系统,而且我不确定解决这个问题的最佳方法是什么.

我应该从哪里开始?在开发这种系统时是否存在常见问题和陷阱?如何在保持隔离的同时使模块相互通信(即,移除模块和使用它的另一个模块保持理智)?是否有任何我可以阅读的指南,规范或文章可以给我一些关于从哪里开始的想法?如果它们基于Java会更好,但这不是必需的,因为我现在正在寻找的是想法,而不是代码.

任何反馈都表示赞赏.



1> Alexander Kl..:

你一定要看OSGi.它旨在成为Java 组件/插件机制.它允许您模块化您的代码(在所谓的bundle中)并在运行时更新bundle.您还可以完全隐藏实现包,使其免受其他包的不必要访问,例如.仅提供API.

Eclipse是第一个实现和使用OSGi的主要开源项目,但他们没有充分利用它(没有重新启动就没有插件安装/更新).如果你从头开始,它将为你提供一个非常好的插件系统框架.

Apache Felix是一个完整的开源实现(还有其他的,比如Eclipse Equinox).

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有