公共CBB实现方案思考
来源:互联网 发布:js小写转化为大写 编辑:程序博客网 时间:2024/05/17 07:00
需求:
对各产品提供一个公共的CBB:该CBB主要屏蔽多个硬件平台的区别,不同的硬件平台的实现机制不尽相同(不同的硬件芯片,驱动等等),但对外提供的功能是一致的
两套实现方案:
1. 每个平台单独实现自己的二进制,在二进制外面做一个封装层来统一供上层调用
示意图如下:
初看起来本方案实现比较简单,且个平台的二进制实现完全独立无耦合,似乎是比较好的方案。但如果考虑后期的维护成本,由于各平台单独实现,编程风格和实现方式不尽相同,新人加入后的理解成本也会随之而来;另外,后续增加新平台时,还需要再独立完整实现一套,之前的工作成果无法复制使用。
综上考虑,该方案并非优选。
2. 统一实现一套CBB代码,命令的解析以及框架共用一套,在具体功能处调用不同平台的接口
示意图如下:
这个方案中可以说是方案1的细粒度实现,整个CBB只用实现一套框架和命令行UI,针对不同平台提出统一规范的API接口。在框架中识别平台后,调用具体平台的接口函数。该方式虽然前期会有开发工作量以及一定的耦合性,但维护成本会大大降低,增加新平台时,也只用根据之前的接口规范重新实现一套插入到当前的框架中即可,可以直接实现代码复用。
总结
以上是在实际工作中的一小项目方案考虑中提炼出来的,相信没有最优只有更优,先记录下当前的思考结果,后续继续优化,也欢迎大家提出意见。
阅读全文
0 0
- 公共CBB实现方案思考
- 电路CBB模块的实现与应用
- 手机客户端网络加速技术方案实现思考
- 手机客户端网络加速技术方案实现思考
- 数据库迁移方案思考
- 最近公共祖先LCA(Tarjan算法)的思考和算法实现
- 最近公共祖先LCA(Tarjan算法)的思考和算法实现
- codeigniter读取数据库的公共配置并全局缓存的实现方案
- codeigniter读取数据库的公共配置并全局缓存的实现方案
- codeigniter读取数据库的公共配置并全局缓存的实现方案
- 程序打印方案的思考
- git实现公共仓库
- 公共PopDatePickerView实现
- 认真思考评估站内全文搜索方案
- 关于权限管理方案的思考
- 软件设计-复杂问题解决方案的思考
- 分布式系统死锁避免方案思考
- 对于防刷票机制方案的思考
- win7字符界面的目录切换
- java 字节输入流、字节输出流、字节缓冲流
- 2482二叉排序树
- 深度学习论文和开源代码
- 机械臂(4)--正向求解
- 公共CBB实现方案思考
- PHP7.0的新特性
- Python abc模块的几个小知识点
- centos安装tomcat7
- mybatis动态SQL之update 去掉最后一个逗号trim方法
- 近来的一些感悟
- 学习笔记TF035:实现基于LSTM语言模型
- linux常用的快捷键
- 算法学习笔记--7.digit-counts