クラスA、B、およびCのそれぞれdoA()、doB()、およびdoC()のメソッドがあると仮定します。
私が間違っていない限り、doA() メソッドはクラス A に属している必要があります。クラス A から実行する必要があります。A の責任を負うメソッド doA() がクラス B に存在する場合、クラス A は B のサービスに結合されています。 . これはまた、凝集度が低く、結合度が高いことを表しています。
私の推論は正しいですか?
クラスA、B、およびCのそれぞれdoA()、doB()、およびdoC()のメソッドがあると仮定します。
私が間違っていない限り、doA() メソッドはクラス A に属している必要があります。クラス A から実行する必要があります。A の責任を負うメソッド doA() がクラス B に存在する場合、クラス A は B のサービスに結合されています。 . これはまた、凝集度が低く、結合度が高いことを表しています。
私の推論は正しいですか?
クラスのすべてのメソッドがすべてのメンバー変数で動作する場合、クラスの凝集度は最大になります。
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;
}
}
カップリングには次の 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