我經常遇到這種情況 - 有一個簡單的普通類,比如文章。還有另一個類存儲關於它們的所有文章和元信息。我通常將其命名爲ArticlesManager。但我已經讀過,這是一個糟糕的做法,在類名中包含Manager,Class等詞。那麼,我們應該如何調用它,如果Article類位於Models命名空間中,我們應該如何調用它的命名空間?用C#(或任何其他語言)命名類
回答
如何命名它(如你在你的問題中所做的那樣)ArticleMeta?
'ArticleMeta'完美的名字 – PresleyDias 2012-01-14 06:27:02
它像手榴彈 - 隨附的是描述現實十碼範圍內的最短名稱或後綴是最好的。這讓我想起谷歌的「三個字母的單詞」,並挑出哪些可能適用於編碼約定。 – 2012-01-14 08:31:04
稱之爲「經理」的一個很大的缺點是,課後往往承擔過多的責任,並開始違反單一責任原則。
想一個類處理存儲在一個數據庫中的文章和命名類「ArticleStore」與命名它「ArticleManager」的類。當下一位程序員需要一個地方來完成文章翻譯時,哪一個類更可能以不相關的代碼結束呢?
這並不意味着叫什麼「ArticleManager」是一個沒有沒有,如果它實際上是有意義爲的階級做什麼名字,它只是意味着它是一個非常普通的名字,並試圖縮小名班上實際做的是一個好習慣。
簡而言之:如果ArticleManager比其他任何事物都能提供更好的描述性理解,只需將其稱爲ArticleManager即可。
它的長處:首先,您應該正確地設計您的解決方案。如果在此之後,你的班級最好被描述爲「文章管理器」,那麼通過golly,callit ArticleManager。不要停留在命名約定上。如果存在邏輯的(並且經過深思熟慮的)原因,那麼慣例就是經驗法則,意在適應(或忽略)。
我自己的例子:在.NET中你是「不應該讓公衆變量」,這是時是正確的99%。它是不正確的時間的1%,如果是使用屬性已超過裸變量衡量的性能損失。
- 1. C#(或任何其他語言)的複雜裝修新語言功能
- 2. 閱讀PDF在C#或任何其他語言
- 3. 使用PHP或任何其他語言獲取引用鏈接
- 4. 如何將文件從英語重命名爲其他語言?
- 5. 成本用FORTRAN函數(或任何其他語言)的
- 6. 使用Perl或任何其他語言下載批量文件
- 7. 是否有在Objective-C在C#或任何其他語言的任何自定義Date類一樣的DateTime
- 8. Java或任何其他語言:哪個方法/類引用了我的?
- 9. 使用Rails或其他語言
- 10. 用C/C++或其他語言編寫SOCKS?
- 11. 操縱在MATLAB或任何其他語言的數學函數
- 12. 三維座標(R或任何其他語言)的binning算法
- 13. SQL注入指南在Java(或任何其他語言)
- 14. 這是可能的java或任何其他編程語言
- 15. 控制網頁槽python或任何其他編程語言
- 16. 調整大部分圖像(php或任何其他語言)
- 17. Sitecore - 重命名時使用其他語言創建的版本
- 18. 其他語言中的「未定義」的任何類似概念?
- 19. 在C++(或任何其他語言)中優雅的控制流程
- 20. C++或任何其他語言的可選結構打字可能性?
- 21. 如何從其他語言連接到wcf命名管道(C,Qt ...)
- 22. C#(或其他語言)代表的使用
- 23. 如何用德語單詞(或任何其他支持複合名詞的語言)做CamelCase?
- 24. atoi()其他語言
- 25. Pylatex使用其他語言
- 26. 其他語言的AD屬性名稱
- 27. 數據庫,其他語言的列名
- 28. 如何在c#或其他語言中使用pop3或IMap協議?
- 29. .Net Eazfuscator或任何其他符號重命名
- 30. ObjectPascal標識符在其他語言上的命名風格
你從哪裏讀到的?這個名字並不像班上實際的名字那麼重要。如果您有需要這樣的一個名稱的類那麼或許表明在類本身的設計不良做法? – 2012-01-14 06:27:00
如何'Magazine' =)或'ArticleRepository' – 2012-01-14 06:28:01