【问题标题】:Use Interface or Class for Constants?对常量使用接口或类?
【发布时间】:2016-01-05 19:44:56
【问题描述】:

有很多关于在 Java 中使用接口作为常量的负面评价。我只是想知道Android开发是否相同,以及原因。 我有这个问题是因为我听到了Enum 和static final 之间的战斗。 Enum 对于 Android 开发来说不是一件好事,我发现 Android Developer 的 YouTube 视频帖子建议开发者使用 static final 而不是 Enum。

【问题讨论】:

标签: java android interface enums


【解决方案1】:

这取决于你想要做什么。如果您需要存储类型安全的静态数据的集合,请使用枚举。例如,您可以使用硬币类型的集合来表示货币。

像这样:

 public enum Coin {
     PENNY,
     NICKEL,
     DIME,
     QUARTER;
 }

对于不同类型的静态数据,使用静态最终值。

例如:

static final int FREEZING_TEMP_FAHRENHEIT = 32
static final double GRAVITY = 9.81

这取决于您是否可以对静态数据进行分组,以便将其存储为事物的集合。如果是这样,枚举。如果不是,则静态最终。

【讨论】:

    【解决方案2】:

    常量的接口是什么意思?在我的大多数应用程序中,我都有一个单例类常量,它有一些公共静态最终字段(在开发时已知的东西)和一些公共字段(仅在运行时已知的东西,并且在单例实例初始化时被初始化首先调用 Constants.getInstance())。如果我的某些字段需要设置上下文,通常我会添加一个方法 initialize(Context context),这是我在 MainActivity 的 onCreate 中调用的第一件事。

    【讨论】:

      【解决方案3】:

      对于常量,我通常为它创建一个资源。例如,对于字符串,您将使用 strings.xml,您也可以使用整数常量。这种方法很有用,因为你从我觉得更有条理的代码中抽象出你的内容。对于特定类所需的常量,我会将它们保留在类内!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-19
        • 2017-04-20
        • 2019-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-06
        相关资源
        最近更新 更多