0

所以2个问题:

  1. 我应该为我的课程使用公共访问还是包访问?在每个项目中,我的所有类都保存在一个包中,并且我从不在其他项目中使用它们的任何方法。那么我需要公共访问权限吗?我认为包裹对我来说没问题。而且会更安全。
  2. 我知道将字段设为私有并为它们创建 getter 和 setter 的习惯。我也理解密封的概念,但是在我读到关于制作 getter 和 setter 的哲学的任何地方,我都只有一个理由:“你必须做 getter 或 setter,这样你才能确定一个变量不会直接用于程序的其他部分。感谢这样您就可以确保您可以在此类 getter 更改中进行(例如决定返回什么值的 if 语句),并确保每个部分的行为都会如此”。但在 99.9% 的 getter 中,只返回类私有值。几乎每次 getter 都只有 1 行“return XXX”。那么还有其他使用吸气剂的可能性吗?和二传手?我曾经从我的项目中删除了 getter 和 setter,公开了字段,我得到的是我的项目缩小了近 30%。
4

1 回答 1

1

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

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

它可能不会对您的小项目产生太大影响,因为您知道不要将字段设置为错误的值,否则会搞砸 - 但如果其他人使用您的类或您的项目规模扩大,您将欣赏事实上,实际字段是私有的,您可以通过 getter/setter 控制访问。

于 2013-01-31T09:44:44.493 回答