demeter的定律說,一個對象不能從對象A的對象B調用方法M.但是它是否也適用於屬性?例?德米特法也適用於屬性嗎?
public class B{
public bool IsValid();
}
public class A{
public B B{get;set;}
}
我可以這樣做嗎?
var isValid = new A().B.IsValid()
或者我應該這樣做:
public class B{
public bool IsValid();
}
public class A{
private B B{get;set;}
public bool IsValid(){
return B.IsValid();
}
}
var result = new A().IsValid();
有(依法)一個問題,如果我從一個訪問B的方法?
在你的2D示例中,它看起來是由內部的'A'創建的'B'的實例。在你的第一個例子中,它是可以設置「B」的公共屬性。你確切的情況是什麼,所以你需要調用'A.B.IsValid'作爲反對'B.IsValid'?在你的第二個例子中,'get'可以是公開的。 – shahkalpesh