通常,在我自己的项目中,我使用getter和setter进行任何字段访问,然后我按照我的工作做同样的事情.前段时间,我们项目的技术负责人问我为什么这样做,为什么这比仅仅使用字段本身更好(如果需要通过子类访问,可以选择声明它们受保护).我无法得出一个明确的答案.
那么,是否有任何理由在类的自己的字段中使用getter和setter,或者直接使用字段是否更好?
最明显的答案是副作用:
int getCost()
{
if (cost == null) {
calculateCost();
}
return cost;
}
Run Code Online (Sandbox Code Playgroud)
如果您需要费用,请使用getCost().如果您想查看是否已计算成本,请使用cost.
您希望将它们声明为公共 getter 和 setter 以及私有字段。这意味着想要修改变量的外部类(不是子类)都通过 setter 进行修改,并通过 getter 获取它们。这样做的好处是,如果您想控制它们获取或设置的方式或条件,或者想要添加信息甚至打印调试,这意味着您只需将其放在 getter 和 setter 中。
实际上 stackoverflow 上有一个很好的解释:
当然,仅在实际需要时才创建方法,同样,仅在外部类需要时才将其公开。
希望对防守有所帮助!
| 归档时间: |
|
| 查看次数: |
2126 次 |
| 最近记录: |