当前位置:   article > 正文

C++ 插件系统_c/c++ extension pack

c/c++ extension pack

转:

1.为什么需要插件化系统

  “编程就是构建一个一个自己的小积木, 然后用自己的小积木搭建大系统”。

  但是程序还是会比积木要复杂, 我们的系统必须要保证小积木能搭建出大的系统(必须能被组合),有必须能使各个积木之间的耦合降低到最小。

  传统的程序结构中也是有模块的划分,但是主要有如下几个缺点:

    a: c++二进制兼容

    b: 模块对外暴露的东西过多,使调用者要关心的东西过多

    c: 封装的模块只是作为功能的实现者封装,而不是接口的提供者

    d: 可替换性和可扩展性差

  而插件式的系统架构就是为了解决这样的问题。插件化设计的优点?插件化设计就是为了解决这些问题的,所以以上的缺点就是咱的优点

2.插件化系统的原理

  指导性原则:“面向接口编程而不是实现编程”
  其接口的定义为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具体是如何实现的,而实现者也不用关心业务层是如何调用的。

3.插件化系统的目标

  1). 使用者能通过规范,开发自己的插件,实用已有的插件,插件又能控制对外暴露的内容。
  2). 运行时候能动态安装、启动、停在、卸载
  3). 每一个插件提供一个或多个服务,其他插件是根据接口来获取服务提供者

4. 一个插件化系统应该是怎么构成的

  OSGI,Java中影响力最大的插件化系统就是OSGI标准
  OSGI的定义:The dynamic module system for java

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/323732?site
推荐阅读
相关标签
  

闽ICP备14008679号