我見過一些開發人員在類的最後放置實例變量聲明,儘管我大多數人都將它們放在頂部。我能想到的唯一理由是它的風格偏好,或者它可以讓它們更容易在IDE中使用。選擇這種風格有更合理的理由嗎?實例變量聲明的放置
回答
由於「編程到'接口',而不是'執行'。」 (Gang of Four 1995:18)(http://en.wikipedia.org/wiki/Design_Patterns#Introduction.2C_Chapter_1),有些人更喜歡在類的底部聲明實例變量。理論認爲,一個類的用戶更關心他們對類(方法)所做的事情,而不是如何完成某些事情(變量)。將方法放在類的頂部,當他們查看代碼時,首先將它們暴露給用戶。
這主要是(如果不是全部)個人偏好。我喜歡他們的頂部,但我不能給出更好的理由,那就是我習慣的方式。
沒有特別「好」的理由做這種或那種方式。唯一真正重要的是同一個項目上的每個人都以同樣的方式進行。
但是,把它們放在最上方是我的經驗,這是Java style guidelines推薦的做法,所以這就是我要做的。
可以實施了自動源代碼格式化,如Jalopy,或附帶了Eclipse的你選擇約定。
大多數實例變量private
,所以我傾向於把它們在底部,因爲我在降低能見度的命令,宣佈成員。如果我按增加的順序宣佈他們,他們將位於頂部,這也是合理的。
我不喜歡的是其私有字段其次是公共領域其次是私有方法。如果我開發一個客戶端類我希望所有的公共部分一起(因爲這是所有我感興趣的)。
我一直合理化,如果你有一個私有類級變量,那麼你要麼硬編碼一個配置,或者你正在以某種方式跟蹤狀態。如果你正在跟蹤狀態,那麼1)從打開文件的那一刻開始,每個將要編寫代碼的人都應該明白這一點,2)跟蹤很多狀態是一種巨大的代碼味道,如果我的開發人員這樣做,那麼我希望它是顯而易見的。因此,把它放在最頂層,使得不好的代碼更加明顯,並且爲編輯課程的未來人員提供警告。
絕對分開的公共/保護VS私有字段和成員,但因爲興趣之一,人們可能不感興趣的其他。
- 1. 實例變量聲明
- 2. .h實例變量聲明
- 3. 將IBOutlet放入實例變量聲明或@property聲明中?
- 4. 實例變量聲明錯誤?
- 5. 聲明驗證阻止實例變量
- 6. 差異如何聲明實例變量
- 7. 實例變量聲明語法
- 8. 屬性和實例變量聲明
- 9. 聲明和放置靜態變量
- 10. 實例化被聲明爲實例變量的ArrayList
- 11. php檢查是否聲明瞭實例變量但未分配實例變量
- 12. 在ObjC實現文件中聲明的實例變量
- 13. X的本地聲明隱藏變量的實例
- 14. 用屬性聲明實例變量或不聲明時有什麼區別?
- 15. 變量聲明
- 16. 聲明變量
- 17. 變量聲明
- 18. 聲明變量
- 19. 變量聲明
- 20. 變量聲明?
- 21. 聲明變量
- 22. 聲明變量
- 23. 聲明迭代散列的實例變量!
- 24. 'photo'的本地聲明隱藏實例變量
- 25. Objective-C中實例變量聲明的順序是否重要?
- 26. 獲取在類中聲明的所有實例變量
- 27. 也聲明爲實例變量的屬性?
- 28. 'textField'的本地聲明隱藏了實例變量
- 29. 實例變量是否可以在類的底部聲明?
- 30. 瞭解類和實例變量的屬性聲明
一類的用戶不應該看的源代碼裏擺在首位(使用應記錄在案,並沒有看源代碼的訪問)。爲什麼有人應該查看源代碼的唯一原因是瞭解內部工作原理,這就是爲什麼我不建議將私有字段放在底部的原因。 – 2017-12-01 12:34:24