题
我想告诉别人他的代码是不是因为它具有多种用途意义上的“一致”。我不认为我能解释得很好,所以我在寻找一个很好的参考和/或定义。
其他提示
我不得不代码由史蒂夫·麦康奈尔完整的旁边我的电脑(即圣经程序员)与页面打开解释凝聚力,所以我想我会分享,
衔接从结构化设计产生 和通常是在相同的讨论 上下文作为偶联。凝聚力是指 要在所有的程序如何密切 类或所有的代码在例行 支持中心目的,如何关注 类是。含有类 密切相关的功能是 描述为具有很强的凝聚力, 和启发式的目标是使 凝聚力强越好。
我使用的术语“关注点分离”来解释这一点的同时重构。通常,当代码是相当新的,事情会变得集中在一起作为单独的关注是不是第一次明确。
一个简单的方法来说明这一点您共同工人将要求他们写测试用例的代码。这应该说明的是,代码是不明确的或相干的。
另一个好短语使用的是函数/对象“应该做的一两件事,把它做好”,这已经从对象/方法名到系统的整体架构中的一切问题。
在除了到目前为止给出的答案,认为高凝聚力的一个简单的方法是缺乏的功能重复,以及相关功能明确分工成不同的模块,组件或类。因此,如果你想有一个功能相似的另一种功能,剪切和粘贴,然后修改代码的副本,你正在减少凝聚力。如果修改了原来的处理新的情况下,在新的情况下,显然与现有的功能,都将增加凝聚力。换句话说,如果你的程序做了具体的事物,无论怎样次或多少地方,最大的凝聚力,应该只有一次的一段代码,做那件事。同时,给定类,模块或组件应该有责任的一个地区。结块无关功能集成到一个单一的类或组件也减少了凝聚力。
作为CodeWiki说,内聚力通常与耦合,其中两个可以在反对作用到彼此,特别是在严格的接口不精心策划的讨论。许多对凝聚力一派文章涉及OO设计,但内聚和耦合不限于OO。
通过部分的有序的,逻辑的,又在美学上一致的关系为特征的; “一个一致的说法” - 从 http://www.websters-online-dictionary.org /定义/相干