保持android View引用是私有的吗?

时间:2017-05-04 14:37:33

标签: java android unit-testing encapsulation

因此,在Java中,封装显然是一个重要的考虑因素,除非有充分的理由否则将每个变量设为私有,这通常是标准做法。

但是,在所有Android文档中的大多数Google示例中,他们从不将其引用声明为私有。

如同,他们写的

Button someButton;

而不是

private Button someButton;

目前,我倾向于将所有视图引用设为私有,即使这样,如果我绝对需要对其数据进行类级别访问,也只能在类级别声明它们。

这是正确的做事方式吗,还是我只是偏执狂?

也许这个约定与单元测试有关?

2 个答案:

答案 0 :(得分:4)

这实际上取决于你想做什么。如果您要进行继承,则需要使用protected。此外,当您使用Butterknife之类的View Binder时,您无法在视图上使用private,因为它会生成设置字段的代码,因此必须公开提供。

我的意思是它归结为你正在使用和需要做的事情。

答案 1 :(得分:0)

简短回答:是

封装非常好。如果你真的希望它们在你的课堂外可见,你应该只公开变量。它使类更容易使用,更易读。

Google经常使用具有本地范围的ViewHolder类(不使用范围声明),因此该范围内的所有类都可以访问这些成员。

理想情况下,如果您需要提供外部访问权限,则首先使用私有成员变量并将其更改为local / protected / public。