2

在编写您打算开源的应用程序(在 java 中)时,拥有大量 getter 和 setter 并将变量设为私有通常是一个好主意吗?更具体地说,如果那是一个android 应用程序,上述问题的答案是否仍然成立?

编辑:如果你们能给我一个具体的理由说明为什么它更好,那就太棒了。

4

3 回答 3

8

如果您在ANDROID中讨论 getter 和 setter ,请查看 android 文档中的内容:-
避免在 Android 上使用内部 Getter/Setter
,这是一个坏主意。虚拟方法调用很昂贵,比实例字段查找要贵得多。遵循常见的面向对象编程实践并在公共接口中使用 getter 和 setter 是合理的,但在类中,您应该始终直接访问字段。

于 2011-02-23T08:08:22.753 回答
3

如果期望从外部访问所有私有变量,那么是的。

假设您有某些不会从外部使用的标志,那么这些标志就不需要 getter/setter。

另见

于 2011-02-23T06:34:22.697 回答
3

让我们这样说吧,你觉得不需要 getter/setter 并且你打算让你的属性变成非私有的。这种方法似乎没有任何问题。但是你必须问自己几个问题。

  • 您是否有任何财产在分配前需要对其价值进行检查?(需要二传手)
  • 您是否有任何不想公开的可变属性?(需要吸气剂)

现在,如果您认为您的少数属性需要 getter/setter,但不是全部。然后我会说为所有这些创建 getter/setter 以保持一致性。:)

进一步参见,Effective Java 2nd Edition

  • 第 13 项:最小化类和成员的可访问性
  • 第 14 条:在公共类中,使用访问器方法,而不是公共字段
  • 第 15 条:最小化可变性
  • 第 38 项:检查参数的有效性
  • 第 56 项:遵守普遍接受的命名约定
于 2011-02-23T06:48:21.557 回答