This question already has answers here:
Using getters within class methods
(6个答案)
7年前关闭。
在Java类中,使用成员的getter和setter访问成员字段是好是坏做法?
例如哪个更好:
总的来说,由于KISS原则,我认为直接访问该字段是最好的方法,而且以后有人可能会覆盖get方法,但结果却无法预测。
但是,我的同事认为,最好保留抽象层。对此有共识吗?
(6个答案)
7年前关闭。
在Java类中,使用成员的getter和setter访问成员字段是好是坏做法?
例如哪个更好:
public Order {
private Agreement agreement;
public Agreement getAgreement() {
return agreement;
}
public void process() {
//should I use:
getAgreement().doSomething();
//Or:
agreement.doSomething();
}
}
总的来说,由于KISS原则,我认为直接访问该字段是最好的方法,而且以后有人可能会覆盖get方法,但结果却无法预测。
但是,我的同事认为,最好保留抽象层。对此有共识吗?
最佳答案
这里的核心问题是直接字段访问不符合子类重写方法,AOP,动态代理等的拦截条件。根据情况,这可能是好事,也可能是坏事。我要说的是,在内部使用getter和setter并不是反模式或模式。根据情况和类(class)的设计,这是好事还是坏事。
08-27 15:06