保持松散耦合,灵活性标准与规模、可见性两个标准冲突时如何取舍?

在看《代码大全2》的 5.3 节时,提到了 3 个衡量模块间的耦合度的标准,即规模(模块之间的连接数)、可见性(两个模块之间的连接的显著程度)、灵活性(模块之间的连接是否容易改动)。然后在灵活性部分举的例子?:

假设有一段子程序 LookupVacationBenefit() ,通过输入雇佣日期和工作级别来查询员工的休假数量。假设另一个模块已有一个包含了雇用日期和工作级别的 employee 对象,将这种对象传给 LookupVacationBenefit() 。

按照规模和灵活性标准,这两个模块之间的耦合关系是很松散的。但是如果有第三个模块也需要使用 LookupVacationBenefit() ,这一模块没有 employee 对象,却包含了雇佣日期和工作级别。这样它就必须拼凑一个 employee 对象来和 LookupVacationBenefit() 协同工作。

最后给出的解决方案是修改 LookupVacationBenefit() ,使它以雇佣日期和工作级别作为参数。

这个例子中是用灵活性替代了规模和可见性。那么在实际的编程过程中,该如何取舍呢?

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题