目录
简介
跨平台 C++ 中间层应用程序框架, 极少的依赖, 强大的功能
想了解些本框架的独特设计? 可以移步 这里
在线文档: http://ZFFramework.com
Github: https://github.com/ZFFramework/ZFFramework
主要功能
- 极少的依赖, 只需要 C++03, 不需要 boost, C++11 等特性,
同时依然能够很好的与现有库和框架共存,
平台实现层也只需依赖非常基本的一些内容 - 反射, 序列化等高级特性
- 只需少量代码即可提供一个新平台的实现层, 并且大多数实现层允许动态加载和动态替换,
目前已支持 Android/iOS/Qt, 主流平台都可以使用 - 提供与本地代码和框架的良好交互, 甚至可以和本地 UI 互相嵌套
- 利用反射实现的 lua 自动绑定, 无需任何 lua 绑定代码
目标
- 用 20% 的代价做 80% 的事情
- 用 20% 的代价做 80% 的事情
- 用 20% 的代价做 80% 的事情, 剩下 20% 的麻烦事, 依旧可以很容易的通过嵌套本地代码来实现
- 通过跨平台, 尽可能减少应用层代码的同时, 尽可能减少平台实现层的代码
- 在各大平台都能有良好的码字体验和用户体验
与其他框架的主要差异
- 这是一个中间层框架, 对平台实现的依赖非常少,
例如 UI 模块只需要依赖一些基本的 View,
可以很容易的新增一个平台实现层 - 完美的模块化, 轻量, 易裁剪, 所有实现层只有在被使用到时才需要,
大部分实现层可以动态加载 - 这是一个完整的框架, 但是能与其他库或框架良好的相互嵌套, "即插即用",
甚至可以作为一个第三方库加载使用, 而不需要影响现有框架
缺点
- 受限于 C++, 使用了大量的宏, 使用了较为奇怪的继承体系 (设计理念依旧是 class + interface), 语法也较为怪异
- 同时存在 POD, C++ 对象, 框架对象 (类似其他框架的单根继承体系) 等多种类型, 需要较好的 C++ 基础
- 反射等高级特性依赖于大量的宏代码生成, 编译输出可能较大, 编译错误可能比较诡异
- 出于便捷, 跨平台和可读性等方面的考虑, 序列化的数据载体为字符串, 性能不如其他序列化框架
- 由于锁也是可选模块之一, 且出于一些性能考虑, 大部分接口不是线程安全, 需要手动进行互斥
todo in order
- 完善 UI 控件
- 可视化 UI 编辑器
- 网络通讯
- 数据库
转载请注明来自: http://zsaber.com/blog/p/24
既然都来了, 有啥想法顺便留个言呗? (无奈小广告太多, 需审核, 见谅)