不想和别的模块耦合的时候可以使用两个头文件

一、背景

  • 近期在想办法重构一块 LCD 代码。想要构建一个组件,充当MVC模型中的C的角色。

  • 之前M(模式)和V(显示)是耦合的。不好读,不好维护,bug多等问题。

  • 不过在重构过程中,很不容易发现C模块的细节是不是也和M或者V耦合了。 理论上,我只希望使用API和其它模块交互。 比如定义的结构体名称,是不是在不应该出现的地方出现了。

  • 尤其是和别的同事合作,我要一个个检查代码,还有很多其它工作,不能在这里花费太多时间。

  • 所以决定借助编译器来帮忙。使用两个头文件。

  • 本次是要写LCD显示管理的模块。所以分成了LcdDisplayManager.h 和 LcdDisplayManagerInternal.h

    如图:

    在这里插入图片描述

    对外仅仅暴露少部分可以暴露的。

    这样,我只要检查内部的头文件没有被其它的模块包含,就知道没有耦合。

二、两个头文件的好处

  • 可以借助编译器来检查是不是模块之间存在不希望的耦合。
  • 也让编写模块的每个程序员都不由的思考到底这个API到底要对外还是对内。让后来参与的程序员也能意识到这一点。有利于代码的维护。

三、参考

能意识到这一点。有利于代码的维护。

三、参考

  • libevent源码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值