2008-10-20 72 views
10

我見過一些開發人員在類的最後放置實例變量聲明,儘管我大多數人都將它們放在頂部。我能想到的唯一理由是它的風格偏好,或者它可以讓它們更容易在IDE中使用。選擇這種風格有更合理的理由嗎?實例變量聲明的放置

回答

17

由於「編程到'接口',而不是'執行'。」 (Gang of Four 1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜歡在類的底部聲明實例變量。理論認爲,一個類的用戶更關心他們對類(方法)所做的事情,而不是如何完成某些事情(變量)。將方法放在類的頂部,當他們查看代碼時,首先將它們暴露給用戶。

+0

一類的用戶不應該看的源代碼裏擺在首位(使用應記錄在案,並沒有看源代碼的訪問)。爲什麼有人應該查看源代碼的唯一原因是瞭解內部工作原理,這就是爲什麼我不建議將私有字段放在底部的原因。 – 2017-12-01 12:34:24

1

這主要是(如果不是全部)個人偏好。我喜歡他們的頂部,但我不能給出更好的理由,那就是我習慣的方式。

14

沒有特別「好」的理由做這種或那種方式。唯一真正重要的是同一個項目上的每個人都以同樣的方式進行。

但是,把它們放在最上方是我的經驗,這是Java style guidelines推薦的做法,所以這就是我要做的。

可以實施了自動源代碼格式化,如Jalopy,或附帶了Eclipse的你選擇約定。

1

大多數實例變量private,所以我傾向於把它們在底部,因爲我在降低能見度的命令,宣佈成員。如果我按增加的順序宣佈他們,他們將位於頂部,這也是合理的。

我不喜歡的是其私有字段其次是公共領域其次是私有方法。如果我開發一個客戶端類我希望所有的公共部分一起(因爲這是所有我感興趣的)。

1

我一直合理化,如果你有一個私有類級變量,那麼你要麼硬編碼一個配置,或者你正在以某種方式跟蹤狀態。如果你正在跟蹤狀態,那麼1)從打開文件的那一刻開始,每個將要編寫代碼的人都應該明白這一點,2)跟蹤很多狀態是一種巨大的代碼味道,如果我的開發人員這樣做,那麼我希望它是顯而易見的。因此,把它放在最頂層,使得不好的代碼更加明顯,並且爲編輯課程的未來人員提供警告。

絕對分開的公共/保護VS私有字段和成員,但因爲興趣之一,人們可能不感興趣的其他。