squirrel插件的初始化原理

近期需要看到squirrel挺有特点,于是下了他的代码看看,进行了代码分析,下午的看了一下他的插件机制,在这里记录一下插件的使用方法,插件模型还是有一定的价值的。
代码:
所有的插件主类都需要继承IPlugin接口,接口中包含了将所有的插件管理放到一个插件管理类中,将插件进行抽象,在启动时将所有的插件进行初始化,放到缓存中。

插件结构:
插件放到一个目录下,首先放一个aa.jar的文件,然后需要其它文件的话,比如图片,jar包等信息,创建一个aa文件夹,将信息放到aa文件夹下面.

插件的启动过程:
1、首先生成一个插件管理类
2、调研插件管理类进行loadPlugins
3、找到存放插件的目录,按照规则便利所有的插件,在便利的过程中将所有的jar放到缓存中,便于后续加载插件的ClassLoader使用
4、初始化插件,这个插件管理类会分配职责给各插件自己完成,并将插件进行缓存。初始化过程采用自己写ClassLoader,查询jar中所有超类是IPlugin的进行初始化工作。
5、启动后程序使用插件。

类图结构正在整理,整理完成后上传。

你可能感兴趣的:(工作)