簡體   English   中英

我應該避免使用常用的類名嗎?

[英]Should I avoid commonly used class names?

有些類名是如此“通用”,以至於它們經常出現在幾個不同的包中,包括庫和應用程序代碼中。 一些例子:

  • 評論
  • 成分
  • 工廠
  • 地點
  • 地區

在我的 IDE 中,嘗試自動完成像其中一個類的導入會產生幾個相互競爭的建議。

命名類時,避免在其他地方使用的類名是否是個好主意?

對於其中一些示例,我認為不鼓勵使用這樣的類名,因為它根本不夠有意義(例如工廠),但我想知道是否不鼓勵使用類名,因為它(經常)在其他地方使用。

評論、地區和位置看起來不錯。 就我個人而言,主觀上來說,Component 和 Factory 確實太常見而無法使用,但客觀上我想不出任何不使用它們作為名稱的傳統理由。 例如,我肯定會嘗試將這些名稱與其各自的用法結合起來; TaskFactory、WidgetComponent、ButtonFactory 等。

您應該在對您最有意義的地方使用類名。 您提議的上述名稱都沒有限制,並且您沒有理由不能使用它們(假設語言支持命名空間並可以通過這種方式避免命名沖突)。

但是,您可以考慮深入到更具體和精確的類名,這將更好地描述代碼中對象的含義。 例如:

  • 而不是CommentLineCommentBreakComment可以很容易地成為編譯器項目中的類名,您可以在其中為注釋創建語義塊。
  • 代替ComponentListComponentCalendarComponentViewComponent在實現具有基於類的組件的 UI 庫時特別有意義。
  • 代替Factory :如果您嘗試制作比薩餅, PizzaFactory更有意義!
  • 代替Location :在實現基於方向的導航應用程序時, GeographicLocationSemanticLocation更有意義,並且您試圖區分“北緯 45 度、西經 77 度”和“披薩店旁邊”。
  • RegionCodeRegion可用於編譯器, GeographicRegion可用於地圖應用程序。

如果您害怕具體,命名空間和包會有所幫助。 但是,沒有什么會阻止您為一個類使用與另一個有意義的包相同的名稱。 類名特別不受版權保護,現在大多數 IDE 都足夠智能,可以在使用自動完成功能時區分您所指的包。

在大多數情況下,特異性有助於幫助其他開發人員閱讀您的代碼,每個開發人員都可以欣賞!

取決於我們是在談論業務還是技術部分。

在技​​術方面:使用通用名稱實際上是讓其他人了解所使用模式的一種方式, Factory就是一個很好的例子——當你看到一個名為SomethingFactory的類時,你可以期待一個工廠模式。 它進一步涉及框架、庫等。 - SomethingAutoConfiguration with Spring-Boot, SomethingEntity with JPA,我認為前端框架(React、Angular) Component是一個非常常見的詞。 所以,你一定要使用它們,只要你正確使用它們。

在業務部分:簡單,如果這些詞描述了您的業務領域,那么一定要使用它們。 不要試圖發明一些花哨的名稱(或同義詞庫!)僅僅因為這些詞看起來很常見,這是您的業務領域 - 它是神聖的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM