所以我在看google的i/o应用程序iosched,我注意到它们通过一个嵌套接口实现常量。例如,在scheduledatabase类中,它们拥有:

public class ScheduleDatabase extends SQLiteOpenHelper {
    interface Tables {
        String BLOCKS = "blocks"
        String TRACKS = "tracks"
    }
}

但我一直在网上阅读,创建一个只存储常量的接口是很差的Java实践。但正如你在ScheduleDatabase课程中看到的,他们采用这种方法的原因是有道理的。所以我想知道这是否也是一个糟糕的练习?

最佳答案

我认为这是一个编码风格的问题,这是一个有争议的问题。一方面,你可以争辩说接口是用来定义类之间的契约的,而这些常量并不是契约的一部分(它们是数据),另一方面,你可以争辩说,将这些常量封装到一个名称空间中是一件好事,可以更好地组织代码。
我不能确定这种模式是好是坏。如果你只有几个常量,那么我会说绝对不要使用它,但是如果你有一堆常量,你可以逻辑地组织成组,然后你可以考虑它。当然,与常规接口版本相比,我更喜欢这种模式的嵌套接口版本。

关于android - Android巢状介面可储存常数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8192106/

10-10 09:36