关于高内聚低耦合的认知与实际应用

本文假定在问题比较简单的情况下进行。

我有如下几个程序模块:

  • 数据清理总调度,它调度以下几个子任务来完成目标
  • 数据清理任务1
  • 数据清理任务2
  • 数据清理任务3

现在要记录数据清理日志,需要往CLEAN_LOG表中insert清理数据记录,那么现在我有两种做法:

【方法1】

在子任务中,各自执行insert日志记录的操作。

【方法2】

在总任务中,每调用一个子任务执行一次insert日志记录的操作。


我就这个问题问了我们团队的成员,大家都表示二者没有什么区别,都一样。

大家都知道,单就这个具体事情而言,其实两种做法的工作量是一样的。

但从软件学的角度而言,一般地,我们应当选择【方法2】。为什么呢?


这就是我们常说的一些软件学思想了:

高内聚与低耦合、单一职责原则、可复用可重用、、、


如果将日志记录的操作分散放在各个子模块中进行,

那就违背了各个子模块执行单一职责(清理特定数据)的原则,而且记录日志需要和模块外的日志表等环境产生依赖(耦合),从而破坏了其内聚性,可想而知 最终其重用性就会大打折扣。而一旦软件失去了重用性,那软件本原的优势也就不复存在了。

反之,如将日志记录操作集中放在总调度模块中进行,

则可以很好的规避上面的种种问题。

当然,你也不用担心各模块日志信息的反馈问题,

这可以通过增加子任务的调用返回值来实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值