尝试的做了一下简单的基于插件的应用程序,希望与大家分享,并且得到好的建议

       最近看了类加载的一些知识,心想着尝试做一个基于URLClassloader的插件应用程序,我们可以随时增加一些功能,开发自己的插件,通过XML配置文件来配置,可以不改变源代码,就可以添加功能,想法很高深,跟Eclipse一样,但是其实做起来很简单,我只是尝试一下,看看自己的想法能够实现,与大家分享,如果有更好的建议,希望大家说出来
      根据需求,有以下几点的要求
1. 需要设计一个这些操作的公共接口 Operation,提供 public void operate() 方法
2. 需要设计一个工厂类,用于根据类名加载类,并且产生Operation对象
3. 需要设定一个目录,来存放插件(插件是一种JAR文件形式),这个目录本来应该是工程的类路径,但是我们用URLClassloader可以不用这样设置
4. 加载类需要一个配置文件,XML格式的就行。其中包括了类的完整名称,用于加载类使用,以及这个插件的名称和ID,以及提供的操作名称等
5. 在update文件中,维护已经加载的插件列表,如果不删除就不会去加载新的插件,如果删除了就会去加载全部插件
6. 加载插件的过程,就是去读取XML文件中的相关信息,利用动态加载技术,将这个类加载到虚拟机中,然后改变界面,就OK了,所以最关键的应该事动态加载类的技术,使用URLClassLoader就可以,似乎可以不用类路径就行,加载jar文件中的类,(想起数据库中的Class.forName(),不过前提是类需要在类路径中),然后利用反射就可以生成实例了

接下来贴出一些关键的算法代码,不全部给出


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值