在doJob()
方法中,B通過getter來引用。我個人不贊成這個想法,寧願只是b.execute()
,因爲我確信getB()
將永遠不會被修改。工程封裝
我知道,通過這樣做,會離開封裝,但不是封裝B對象在這裏矯枉過正?
class A{
private B b;
public void setB(B b){
this.b = b;
}
public B getB(){
return b;
}
public void doJob(){
getB().execute();
}
}
在類內部,您不必擔心使用'getB()',因爲'b'是在您的類中定義的'private'變量。但是,一旦你嘗試從另一個類訪問它,你將需要使用getter。 – Bucket
http://programmers.stackexchange.com/questions/181567/should-the-methods-of-a-class-call-its-own-getters-and-setters – Habib
當你聲明「*'getB()'會永遠不要修改*「,通過在代碼中寫入」final「來強制執行。 – hyde