我不明白“CBO-对象类之间的耦合”到底是什么意思。我找到的定义太短了,我想我遗漏了什么,所以如果你能帮我举个例子,那就太好了。
下面是我找到的定义:“对象类之间的耦合是它耦合到的其他类的数量的计数。”
提前谢谢。
发布于 2015-04-26 20:02:18
对象间耦合(CBO)是对耦合到特定类的类数量的计数,即一个类的方法调用另一个类的方法或访问另一个类的变量。这些调用需要在两个方向上计数,因此类A的CBO是类A引用的类集合和引用类A的那些类的大小。由于这是一个集合-即使引用在两个方向上操作,每个类也只计数一次,即如果A引用B和B引用A,则B仅计数一次。
这是这里给出的定义- www.virtualmachinery.com/sidebar3.htm
链接中有一些更多的细节-以及关于Chidamber和Kemerer指标的有趣的一般性讨论- CBO是这些指标的一部分。
发布于 2016-02-27 04:42:26
下面是一个使用UML的示例,它补充了其他答案:

备注:
发布于 2014-12-17 07:36:31
耦合是指一个类(A)依赖(知道、需要、使用)另一个特定的类(B)。这意味着当您更改A使用的公共成员B时,您也必须更改A。你想要类型之间的低耦合,这样你就可以改变类而不会有很多副作用。通常,耦合与糟糕的封装一起出现,所以你会有A知道的信息,这些信息应该是B的私有信息。
有些类型足够通用(比如C#中的List ),您可以直接使用它们,而不用担心副作用。但是,无论您为自己的应用程序定义了什么类,您都需要意识到这些类可能会发生变化。因此,在许多情况下,您对B的某些行为(或属性)更感兴趣,而不是A使用整个B。在这些情况下,最好提取一个接口(以抽象所需的行为),然后A将只知道抽象,而B将实现它。这允许您有多个具体的实现(每次处理数据库、网络、导入/导出等事情时都很有用),而A不会知道B。
因此,A可以在不知情的情况下使用B、C、D等中的任何一个,只要它们实现了接口,并且您可以更改B、C、D中的内容,只要这不会违反公共契约(接口)。
虽然我们通常希望我们的类是解耦的,但是内聚(就像在一起工作),在许多情况下耦合不会真正伤害你,因为解耦可能需要更多的努力而不是提供价值。这取决于开发人员来识别这些情况并做出适当的决定。然而,这是有经验的,所以同时,尽量不要太多地耦合你的类。
https://stackoverflow.com/questions/27515541
复制相似问题