凝聚力VS。耦合
这个问题将软件视为一棵树,其中:
- 树中的每个节点代表一些代码单元(例如类\方法\行等)
- 如果在源代码中X设置在Y中,则节点X是节点Y的儿子
这里是术语 T 的定义:
相对于节点 X 的 T 是 X 上的任何更改将导致 X 的子树内的节点发生更改的概率。
术语 T 是什么?内聚还是耦合?
This question will treat software like a tree, where:
- Each node in the tree represents some code unit (eg class \ method \ line etc.)
- Node X is son of Node Y if in the source code X is set in Y
Here is the definition of the term T:
T relative to Node X is the probability that any change on X will result changes in nodes that are within the sub-tree of X.
What is the term T? Cohesion or Coupling ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
耦合将是水平的、跨节点的。凝聚力将是垂直的,在同一棵树内。
所以 T 就是内聚力。
两个松散耦合的独立模块将位于不同的子树中,其中一个模块的更改不会影响另一个模块。但如果紧密耦合,其中一个的更改可能需要另一个的更改,即使它们位于不同的子树中。显然这不可能是T。
Coupling would be horizontal, across nodes. Cohesion would be vertical, within the same tree.
So T would be cohesion.
Two separate modules, loosely coupled, would be in separate subtrees, and a change in one would not affect the other. But if tightly coupled, a change in one might require a change in the other, even though they are in separate subtrees. Obviously this cannot be what T is.
内聚:它是一个模块内概念,表示模块内的关系。
耦合:是一个模块间的概念,表示模块之间的关系。
为了确保任何系统或软件的灵活性和刚性的平衡,耦合和内聚应该平衡。
有关更多详细信息,请参阅此参考。
Cohesion: It is an intra-module concept and indicates relationships within modules.
Coupling: It is an inter-module concept and indicates relationships among modules.
In order to ensure a balanced flexibility and rigidity of any system or software, coupling and cohesion should be balanced.
See this reference for more details.