2011-11-19 53 views
3

所以我在看谷歌的I/O應用程序,iosched,我注意到他們通過嵌套接口實現常量。例如,在他們的ScheduleDatabase類他們有:Android嵌套接口來存儲常量

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

但我一直在網上閱讀,這是Java的不良做法,以創建一個接口來只存儲常數。但正如你在ScheduleDatabase課程中看到的那樣,爲什麼他們採用這種方法是有道理的。所以我想知道這是否也是不好的做法?

+0

接口是最終的,這使得效率在os –

+0

請注意,這可能是一個愚蠢的http://stackoverflow.com/questions/320588/interfaces-with-static-fields-in-java-for-sharing-constants儘管這個討論似乎沒有提到嵌套接口。 – kabuko

+0

我先看過那個,但就像你說的,它沒有提到嵌套接口,所以我認爲它可能不同 – Hank

回答

1

我覺得這是一種編碼風格問題,這是一個見仁見智的問題。一方面,你可能會說接口是用於定義類之間的契約,而這些常量並不是真正的契約的一部分(他們是數據),另一方面你可能會認爲將這些常量封裝到一個名稱空間中是一個好東西,並更好地組織代碼。

我不能確定這種模式是好還是壞。如果你只有一些常量,那麼我肯定不會使用它,但是如果你有一堆常量可以在邏輯上組織成組,那麼你可以考慮它。當然,我更習慣於在普通的界面版本上使用這種模式的嵌套接口版本。

-1

你可以閱讀有關Java的東西有些期待 - 不是所有的是工程