假设我分别有A,B和C类的doA(),doB()和doC()方法。
除非我错了,doA()方法应该属于A类。它必须从A类执行。如果一个方法doA()负责A,则存在于B类,而不是A类耦合到B的服务。这也代表低内聚力和高耦合
我的推理是否正确?
答案 0 :(得分:1)
如果一个类的所有方法都对其所有成员变量进行操作,则该类具有最大内聚。
public class MyClass
{
private int value1;
private int value2;
private int value3;
public int Method1()
{
return value1 + value2;
}
public int Method2()
{
return value1 - value2;
}
// doesn't belong on this class
public int Method3()
{
return value3 * 2;
}
}
耦合有两种形式:
示例:
public class MyClass
{
public void Method1()
{
var c = new MyOtherClass();
c.DoSomething();
}
}
示例:
public class MyClass
{
public void Method1()
{
var c = new MyOtherClass();
var size = c.Members.Size;
...
}
}
在这种情况下,MyClass
不仅会耦合MyOtherClass
,还会耦合MyOtherClass
的结构,这就是您遇到麻烦和代码的地方变得僵硬和脆弱。