【问题标题】:Is it good to keep android View references private?将android View引用保持私有是否很好?
【发布时间】:2017-05-04 14:37:32
【问题描述】:

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

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

他们写道

Button someButton;

而不是

private Button someButton;

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

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

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

【问题讨论】:

    标签: java android unit-testing encapsulation


    【解决方案1】:

    这真的取决于你想做什么。如果你要继承你想使用protected。此外,当您使用像 Butterknife 这样的 View Binder 时,您不能在视图上使用 private,因为它会生成设置字段的代码,因此它们必须是公开可用的。

    我的意思是这取决于你正在使用什么以及需要做什么。

    【讨论】:

    • 既然提到了,那ButterKnife的意义何在?我看不到它如何保存任何代码。也许我误解了它的作用。
    • @Airhead 它节省了大量的锅炉代码。当您需要使用 @OnClick({array_of_view_ids}) 之类的方法绑定时,它会非常出色。这是个人喜好,但我喜欢它,即使它有他的缺陷。查看我关于 Butterknife 的问题 :)
    【解决方案2】:

    简短回答:是的

    封装非常好。如果您真的希望它们在您的班级之外可见,您应该只公开变量。它使类更易于使用且更具可读性。

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

    理想情况下,您从私有成员变量开始,仅当您需要提供对它们的外部访问时才将它们更改为本地/受保护/公共。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多