我应该使用公共或包裹访问吗?为什么我应该使用私有字段?

时间:2013-01-31 09:35:47

标签: java

所以有2个问题:

  1. 我应该将我的课程用于公共或包裹访问吗?在每个项目中,我的所有类都保存在一个包中,我从不在其他项目中使用任何方法。我需要公共访问吗?我认为包装对我来说没问题。并且会更安全。
  2. 我知道习惯让田地变得私密,并为他们制造吸气剂和制定者。我也理解密封的概念,但无论我在哪里读到关于制作吸气剂和制定者的哲学,我只有一个理由:“你必须做吸气剂或定位器,所以你确定一个变量不直接用于程序的其他部分。感谢这可以肯定你可以进行这样的getter更改(比如if语句决定返回什么值)并确保每个部分的行为都像那样“。但99.9%的吸气剂只返回私人价值。几乎每次吸气器只有1行“返回XXX”。那么使用getter还有其他任何可能吗?和安装者?我曾经从我的项目中删除了getter和setter,将字段公之于众,我得到的是我的项目减少了近30%。

1 个答案:

答案 0 :(得分:1)

将所有字段设为私有,并根据需要实施getter和setter通常是一个好主意。这样,您可以确保不会以非预期的方式使用/更改字段。例如,您可以向设置者添加错误检查代码,以确保字段不会设置为会破坏其他内容的值。如果其他类可以直接设置该字段,则无法阻止该字段。

如果你有充分的理由建立一个具有包可见性或公开的字段,那么当然你可以这样做,但你必须知道如果其他人/类使用你的字段错误会导致什么问题方式。

它可能在你的小项目中没有很大的不同,因为你知道不要将字段设置为错误的值,否则搞砸了 - 但是如果其他人使用你的类或你的项目规模增长,您会理解实际字段是私有的,您可以通过getter / setter来控制访问。