我正在学习罗伯特·C·马丁(Robert C. Martin)的《清洁代码》(Clean Code)(2009)的书,偶然发现了凝聚力的概念(第10章)。罗伯特引用:
每个方法使用每个变量的类具有最大的内聚性。通常,建议不要创建这样的最大内聚类...
不幸的是,我在任何地方都没有找到详细的解释。有人用真实的代码示例对此进行解释吗?
提前谢谢了!!
使我的评论成为答案。
我可以想到的一个简单而实际的示例是表示计算机辅助设计中的几何形状的类。
例如:
class Circle{
float[2] center;
float radius;
draw() {
hardware.draw(center[0], center[1], radius);
}
print() {
print('Cicrle at '+center[0]+','+center[1]+' with radius '+radius);
}
scale(s) {
center[0] *= s;
center[1] *= s;
radius *= s;
}
intersectLine(line) {
/* compute intersection based on line and circle coordinates using both cnter and radius variables */
}
}
class Bezier{
float[4] controls;
draw() {
/* .. */
}
print() {
/* .. */
}
scale(s) {
/* .. */
}
intersectLine(line) {
/* .. */
}
}
可以看到,形状类具有最大的内聚性,考虑到对象及其方法的性质,这是完全正常的。计算实际利息时需要使用它们的变量。
希望这些示例和说明有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句