ios - 保持松散耦合,灵活性标准与规模、可见性两个标准冲突时如何取舍?
巴扎黑
巴扎黑 2017-04-18 09:37:19
0
0
324

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

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

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

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

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

巴扎黑
巴扎黑

reply all (0)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!