将getter和setter置于静态,或者只是公开它是否有意义

时间:2014-01-02 02:55:49

标签: java scope

我有一个static double,其他类需要访问和修改。

拥有public getter和setter并制作static double private

是否有意义

或者,只需制作static double public

对于非static成员,我可以看到安装者和吸气者的好处,但我不确定 static秒。

4 个答案:

答案 0 :(得分:2)

使用getter和setter,因为它更灵活。它还可以防止有人将double更改为您的应用程序中不允许的内容。您可以在获取和设置方法中检查它。文档也更容易。请使用getter和setter。

答案 1 :(得分:1)

已经给出了死记硬背的答案,并且它们是正确的:公共课程很糟糕(除非是最终的)。相反,您应该始终通过方法授予访问权限,以便您可以控制类的开发。

真正的设计问题是,为什么你想让其他类首先访问这个类的数据呢?有一些特定情况下这是有意义的,而更多情况下它没有。粗略地说,如果一个类是数据包,您希望允许用户将数据放入并将其取出。否则,您几乎想让该类处理自己的业务。也就是说,我们将数据提交给对象并可能得到响应。我们没有进入并检查和设定其值,因为如果我们这样做,我们就会创造出不必要的耦合。

我鼓励您重新审视您的设计,并再次考虑编写意大利面条代码的必要性。这可能会在以后咬你。相反,尝试提出一种“在其关节处雕刻自然”的设计 - 也就是说,您不需要以这种方式穿过细胞壁。

答案 2 :(得分:0)

最好使用getter和setter,因为以后可以在需要时修改变量时添加同步或执行其他操作。

答案 3 :(得分:0)

我使用setter / getter如果变量是static而不是final,你必须在设置新值时验证它,并且你可能需要制作那些方法{ {1}}如果您处于多线程上下文中。