最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的工具類命名方法

 更新時間:2025年04月28日 14:19:02   作者:風(fēng)象南  
這篇文章主要介紹了Java中的工具類究竟如何命名,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

Java中的工具類究竟如何命名?

先來幾個例子

JDK自帶工具類

Arrays.asList();
Objects.equals();
Collections.sort();

Spring框架工具類

StringUtils.isEmpty();
CollectionUtils.isEmpty()
FileCopyUtils.copy();

Hutool工具類

StrUtil.isEmpty();
CollectionUtil.isEmpty();
FileUtil.copy();

我們發(fā)現(xiàn)各組例子之間的命名方式均不一樣,總結(jié)一下分為三種:

1、JDK主要以操作對象的復(fù)數(shù)形式命名
2、Spring框架的工具類以對象或用途 + Util復(fù)數(shù)方式命名
3、Hutool框架的工具類則以對象或用途 + Util單數(shù)方式命名

OK,看完上面的再看下我們項目中的工具類命名方式

 StringUtil.isEmpty();
 StringUtils.isEmpty();
 StringKit.isEmpty();
 StringHelper.isEmpty();
 StringTool.isEmpty();
 StringTools.isEmpty();

可以看到一個簡單的String工具類就可以有這么多命名方式,可謂是集百家之長,相當(dāng)豐富。

幾種命名方式的比較

JDK為代表的對象復(fù)數(shù)形式

優(yōu)點
簡單明了,熟悉的人這么用其實蠻爽的。

缺點
容易與其他以s結(jié)尾的單詞讓人對類的作用產(chǎn)生誤解,例如將News、Goods等pojo類跟Objects工具類放一起。是不是第一感覺它們是同一用途,實則不然。

Spring框架為代表的對象Util復(fù)數(shù)形式

優(yōu)點
能從類名上對類的用途進行劃分,使用者不容易產(chǎn)生誤解。

缺點
類命名一般為單數(shù),復(fù)數(shù)命名形式會顯得整體命名方式不一致。

Hutool框架為代表的對象Util單數(shù)形式

優(yōu)點
能從類名上對類的用途進行劃分,使用者不容易產(chǎn)生誤解,且整體命名方式容易與項目其他類保持一致。

缺點
這樣就OK了,再較真就沒法玩了。

項目中的命名方式

此處不對項目中的Kit、Tool等命名做過多討論,主要還是對主流的幾種命名方式進行分析。

到底如何命名 ?

對于純粹的工具類來說,行業(yè)中普遍還是以Util或Utils命名方式居多,其他命名方式當(dāng)然也可以使用,包括上面所列舉的項目中的幾種命名方式,只是說大家提到Util或Utils第一反應(yīng)都知道是工具類,其他的命名方式或許需要反應(yīng)個幾秒鐘。

但是這里需要說一下Util與Helper的區(qū)別,也僅限自己的理解。

在軟件架構(gòu)中有個軟件重用的概念,分為水平式重用與垂直式重用。

水平式重用:是指可以在不同應(yīng)用領(lǐng)域中使用的軟件元素,簡單理解就是業(yè)務(wù)無關(guān)性,可以在任意業(yè)務(wù)場景中使用

垂直式重用:是指在一類或具有較多公共性的應(yīng)用領(lǐng)域之間進行軟部件重用,簡單理解就是可以在特定的業(yè)務(wù)領(lǐng)域或業(yè)務(wù)場景中使用

那么Util類就屬于上面所說的水平式重用,Util類更多是對JDK提供的類進行封裝,或者是某一技術(shù)框架自己提供的對框架內(nèi)部其他類的使用封裝,但是這類一般都具有業(yè)務(wù)、領(lǐng)域的無關(guān)性。在任何業(yè)務(wù)、領(lǐng)域下均可使用。所以既然是工具類一定保證其水平式重用這一特性。

Helper翻譯過來助手/幫手,從字面意思來看,這樣的類是作為輔助類來使用的,那么問題來了,輔助的對象是誰 ?那么當(dāng)然是對別的類的輔助,這里就有個范圍,哪些類可以被輔助,理論上所有類或?qū)ο笕绻枰伎梢员惠o助,但實際中更多是為了簡化某一場景下相關(guān)類使用的復(fù)雜度,而提供了便捷的訪問接口,形成Helper類,而這個場景一般具有業(yè)務(wù)或領(lǐng)域特征,所以更多體現(xiàn)的使用垂直式重用。

總結(jié)

我個人來說目前習(xí)慣使用Util單數(shù)形式命名,項目中的其他類均以單數(shù)形式命名,如:UserController、UserVo這樣的,突然出現(xiàn)一個復(fù)數(shù)形式的類會感覺有點突兀。

沒什么特殊要求或個人癖好的情況下,還是以Util或Utils大眾最容易理解的方式進行命名,你說我非要用Tool命名咋的了,這么干也沒問題,關(guān)鍵在于公司或團隊有一套自己的標(biāo)準(zhǔn)就行,我是一個有代碼潔癖的人,團隊中的規(guī)范標(biāo)準(zhǔn)我都會進行嚴格統(tǒng)一,前期看似需要花費不少時間,但當(dāng)內(nèi)部大家認知能夠達成一致時,越往后團隊中大家工作的默契度越高,這樣能最大程度減少溝通成本,減小后期的維護成本.

如果能滿足以上需求,怎么命名真的都OK。

到此這篇關(guān)于Java中的工具類究竟如何命名?的文章就介紹到這了,更多相關(guān)Java工具類命名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java利用泛型實現(xiàn)折半查找法

    Java利用泛型實現(xiàn)折半查找法

    泛型是JAVA重要的特性,使用泛型編程,可以使代碼復(fù)用率提高。查找作為泛型的一個簡單應(yīng)用,本文將使用泛型實現(xiàn)折半查找法,感興趣的可以了解一下
    2022-08-08
  • MyBatis Generator介紹及使用方法

    MyBatis Generator介紹及使用方法

    MyBatis Generator 是一款針對 MyBatis 或 iBATIS 設(shè)計的代碼生成器,由 MyBatis 官方提供,這篇文章主要介紹了MyBatis Generator介紹及使用方法,需要的朋友可以參考下
    2023-06-06
  • JVM的類加載器和雙親委派模式你了解嗎

    JVM的類加載器和雙親委派模式你了解嗎

    這篇文章主要為大家詳細介紹了JVM類加載器和雙親委派模式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Spring @Conditional注解原理解析

    Spring @Conditional注解原理解析

    這篇文章主要介紹了Spring @Conditional注解原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Springboot中如何使用過濾器校驗PSOT類型請求參數(shù)內(nèi)容

    Springboot中如何使用過濾器校驗PSOT類型請求參數(shù)內(nèi)容

    在Springboot中創(chuàng)建過濾器,用來過濾所有POST類型請求并獲取body中的參數(shù)進行校驗內(nèi)容是否合法,該方法僅適用于POST類型請求,本文給大家介紹Springboot中如何使用過濾器校驗PSOT類型請求參數(shù)內(nèi)容,感興趣的朋友一起看看吧
    2023-08-08
  • SpringSecurity實現(xiàn)RBAC權(quán)限管理

    SpringSecurity實現(xiàn)RBAC權(quán)限管理

    本文介紹了在Spring Boot中用 Spring Security實現(xiàn)RBAC權(quán)限管理的方案,并提供了自定義注解來簡化權(quán)限管理的思路,具有一定的參考價值,感興趣的可以了解一下
    2025-08-08
  • Java中Class.forName()在代碼上無法執(zhí)行報錯NotFound的解決過程

    Java中Class.forName()在代碼上無法執(zhí)行報錯NotFound的解決過程

    這段文章主要討論了ClassNotFoundException的錯誤原因,指出問題源于文件夾命名錯誤,應(yīng)命名為WEB-INF而非WEB-INFO,并強調(diào)了正確配置的重要性
    2026-06-06
  • Maven批處理腳本與Qoder配置使用指南

    Maven批處理腳本與Qoder配置使用指南

    在 Java 項目開發(fā)過程中,經(jīng)常需要執(zhí)行 Maven 清理、編譯、打包等操作,為了提高效率,我們可以編寫批處理腳本自動化這些流程,并在 Qoder 中配置使用,所以本文介紹了如何編寫Maven批處理腳本并配置Qoder使用,需要的朋友可以參考下
    2026-06-06
  • java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解

    java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解

    這篇文章主要介紹了java.lang.Runtime.exec的左膀右臂:流輸入和流讀取詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java基礎(chǔ):流Stream詳解

    Java基礎(chǔ):流Stream詳解

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。這篇文章主要介紹了Java8新特性Stream流的相關(guān)資料,需要的朋友參考下吧
    2021-09-09

最新評論

全椒县| 衡阳市| 宜阳县| 高唐县| 奉贤区| 上林县| 正定县| 浮山县| 龙岩市| 息烽县| 马公市| 江西省| 唐河县| 陆河县| 六盘水市| 本溪| 沈阳市| 巴林右旗| 新沂市| 榆树市| 讷河市| 阳城县| 承德市| 丰台区| 图木舒克市| 白河县| 黄陵县| 新宁县| 荥经县| 兖州市| 星子县| 临城县| 宁强县| 厦门市| 教育| 揭阳市| 五原县| 阳江市| 卢龙县| 临湘市| 东乌珠穆沁旗|