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

前端之家收集整理的这篇文章主要介绍了利用模板隐藏代码中依赖关系前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

应对这种问题一般的方法是提供 该系统 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就行

猜你在找的设计模式相关文章