加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

利用模板隐藏代码中依赖关系

发布时间:2020-12-13 19:58:30 所属栏目:百科 来源:网络整理
导读:一个同构的逻辑在多数时候会遇到下面类似的问题:工程里面有一个系统 同时在另一个工程里面 有一个针对此系统提供的工具 并且需要实现一个简易的模拟流程。 多数的数据结构一致,业务流程也差不多一样, 最大区别在于 模拟的流程 里面不需要提供实际流程中复

一个同构的逻辑在多数时候会遇到下面类似的问题:工程里面有一个系统 同时在另一个工程里面 有一个针对此系统提供的工具 并且需要实现一个简易的模拟流程。 多数的数据结构一致,业务流程也差不多一样, 最大区别在于 模拟的流程 里面不需要提供实际流程中复杂的逻辑。

应对这种问题一般的方法是提供 该系统 interface 这种接口类头文件, 利用这个接口文件 可以屏蔽 复杂逻辑 工程里的 代码依赖。 这份方法好处在于结构清晰。 但存在一个问题是如果此系统的 功能颇多 ,则接口一个个写起来也是很吐血的事情,而且在接口在不停增长的背景下要同步维护 1复杂代码.h 2 接口.h 3 简单代码.h 之间的联系也是件费力的事情。 如果只是部分 代码需要隐藏时 这种方案显得更加的不划算

有个更简单快捷的方法, 让3个 .h得以合成1个 且 不用把 代码中的依赖 带到这个.h 中 ----- 对 利用 模板 这个编译期间生成代码的特性,可以把代码依赖通通扔给.cpp解决。

假设 一个任务系统 有个 void sendmsg(MSG m) 的接口 ,而工具所在的环境中并没有引入过通讯相关的东西,不认识MSG 这种东东而且在实现里也压根不会调用到,那

只需要把接口 实现成 template<MSG>void sendmsg(MSG m) 就可以让编译器停止 报sendmsg编不过的错

配合良好的习惯,可以把依赖代码放.cpp里, 把系统内聚的逻辑放.h里 ,这样一来 工具的简易流程实现起来就容易多了 。只用重写部分方法 cpp就行

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读