Posted on 2009-10-12 20:19
常高伟 阅读(747)
评论(0) 编辑 收藏
这几天为了设计插件开发框架,尝试用了一下发散思维来思考问题。中间看过依赖注入,AOP(面向方面编程),以及契约式设计等。虽然有些工具无法直接使用,但是这些思想还是可以借鉴的,比如依赖注入,契约式设计。至于AOP,和工具相关性较大,虽然思想不错,但是无法直接在C++中使用。
我设计的插件间的依赖不是通过接口实现的,而是通过插件间的数据(信元流)。而信元流的检测可以使用契约来检查。
插件开发框架的总体结构
微内核 :
1、 负责插件的加载,检测,初始化。
2、 负责服务的注册。
3、 负责服务的调用。
4、 服务的管理。
扩展层:
1、 日志的打印。
2、 消息(信元流)的解释,将二进制格式解释为文本。便于定位。
3、 消息和日志的追踪。
分布式处理层:
1、 用于和其他的框架通信。
2、 和其他的框架搭配,形成一个分布式的系统。
自动化测试框架层:
1、 集成 cppunit 。
2、 自动化集成测试框架。
3、 自动化功能测试框架。
和第三方框架集成层:
1 、和 第三方框架 集成层。