内聚和耦合有什么区别?
耦合和内聚如何导致好的或差的软件设计?
有哪些示例概述了两者之间的差异以及它们对整体代码质量的影响?
内聚 是指类(或模块)可以做什么。低凝聚力意味着班级会采取各种各样的行动——它是广泛的,不专注于它应该做什么。高凝聚力意味着班级专注于它应该做的事情,即只关注与班级意图相关的方法。
低内聚的例子:
------------------- | Staff | ------------------- | checkEmail() | | sendEmail() | | emailValidate() | | PrintLetter() | -------------------
高凝聚力的例子:
---------------------------- | Staff | ---------------------------- | -salary | | -emailAddr | ---------------------------- | setSalary(newSalary) | | getSalary() | | setEmailAddr(newEmail) | | getEmailAddr() | ----------------------------
至于 耦合 ,它是指两个类/模块之间的相关或依赖程度。对于低耦合类,改变一个类的主要内容不应该影响另一个类。高耦合会使您的代码难以更改和维护;由于课程紧密结合在一起,因此进行更改可能需要对整个系统进行改造。
好的软件设计具有 高内聚 和 低耦合 。