在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