2014-04-19 38 views
1

我一直在討論java包和java類名的命名。我應該使用包名還是類名來表示一個概念?

我遇到的問題如下:我們有一個名爲Feature的接口,我們有子接口,如:LogInFeature和AuthenticationFeature。這兩個接口都有其特定的API,並且它們都在同一個包中。對於這個問題,哪個包/類命名結構更有利,爲什麼?

com.example.internal.feature.LogIn 
com.example.internal.feature.Authentication 

VS

com.example.internal.features.LogInFeature 
com.example.internal.features.AuthenticationFeature 

我喜歡的第一個解決方案,因爲它不會在所有類別中複製功能。但另一方面,我也喜歡第二種解決方案,因爲在最後的附加功能有助於在大代碼基礎上進行代碼發現。

如果除了內部功能,我還有外部功能,或者如果我允許我們的客戶添加功能插件,答案會不同嗎?

歡迎任何評論和建議。

+0

我寧願第一個解決方案。因爲你的代碼看起來很優雅,你最終會在同一個地方獲得模塊中的所有接口。您可能希望基於模塊創建軟件包,而不是基於特定的功能,因爲這會使您的代碼闖入您不想猜測的修補程序。 – vikeng21

+0

這並不能真正回答您的問題,但如果您要使用第一個解決方案,您會在哪裏放置「Feature」接口? (只是出於好奇......:$) – wns349

+1

@ wns349,代碼本身在過去並沒有很多想法。 Feature.java當前在同一個包中:com.example.internal.feature。 – Lily

回答

0

我傾向於第二個變體,類名稍長。

這背後的推理是我覺得我應該能夠通過查看名稱來告訴課程負責人。另外,如果代碼後面還包含與另一個包中的LogIn相關的內容,這會導致兩個具有相同名稱的類,所以它不那麼令人困惑(至少對我來說)。

+0

你認爲命名:LogIn和Authentication是不好的? – Lily

+0

@Lily:不是,但我認爲較長的名字要好得多。 – Keppil

相關問題