赞
踩
“编程就是构建一个一个自己的小积木, 然后用自己的小积木搭建大系统”。
但是程序还是会比积木要复杂, 我们的系统必须要保证小积木能搭建出大的系统(必须能被组合),有必须能使各个积木之间的耦合降低到最小。
传统的程序结构中也是有模块的划分,但是主要有如下几个缺点:
a: c++二进制兼容
b: 模块对外暴露的东西过多,使调用者要关心的东西过多
c: 封装的模块只是作为功能的实现者封装,而不是接口的提供者
d: 可替换性和可扩展性差
而插件式的系统架构就是为了解决这样的问题。插件化设计的优点?插件化设计就是为了解决这些问题的,所以以上的缺点就是咱的优点
指导性原则:“面向接口编程而不是实现编程”
其接口的定义为interface, 其实转换一下的意思是面向纯虚类编程,当然也可以包装成面向服务和组件编程。
如我可以这样定义一个接口(interface)
1
2
3
4
5
|
interfacecptf IRole{
virtual
cptf ::ulong getHealth() = 0;
virtual
cptf ::ulong getHurt() = 0;
virtual
wstring getName() = 0;
};
|
插件的目标就是实现IRole, 业务层的目标就是调用IRole, 业务层不知道IRole具体是如何实现的,而实现者也不用关心业务层是如何调用的。
1). 使用者能通过规范,开发自己的插件,实用已有的插件,插件又能控制对外暴露的内容。
2). 运行时候能动态安装、启动、停在、卸载
3). 每一个插件提供一个或多个服务,其他插件是根据接口来获取服务提供者
OSGI,Java中影响力最大的插件化系统就是OSGI标准
OSGI的定义:The dynamic module system for java
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。