欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的工具類命名方法

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

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

先來幾個(gè)例子

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主要以操作對(duì)象的復(fù)數(shù)形式命名
2、Spring框架的工具類以對(duì)象或用途 + Util復(fù)數(shù)方式命名
3、Hutool框架的工具類則以對(duì)象或用途 + Util單數(shù)方式命名

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

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

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

幾種命名方式的比較

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

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

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

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

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

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

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

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

缺點(diǎn)
這樣就OK了,再較真就沒法玩了。

項(xiàng)目中的命名方式

此處不對(duì)項(xiàng)目中的Kit、Tool等命名做過多討論,主要還是對(duì)主流的幾種命名方式進(jìn)行分析。

到底如何命名 ?

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

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

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

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

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

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

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

總結(jié)

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

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

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

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

相關(guān)文章

  • @NonNull導(dǎo)致無法序列化的問題及解決

    @NonNull導(dǎo)致無法序列化的問題及解決

    這篇文章主要介紹了@NonNull導(dǎo)致無法序列化的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Java模擬實(shí)現(xiàn)HTTP服務(wù)器項(xiàng)目實(shí)戰(zhàn)

    Java模擬實(shí)現(xiàn)HTTP服務(wù)器項(xiàng)目實(shí)戰(zhàn)

    本文主要介紹了Java模擬實(shí)現(xiàn)HTTP服務(wù)器項(xiàng)目實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 常用json與javabean互轉(zhuǎn)的方法實(shí)現(xiàn)

    常用json與javabean互轉(zhuǎn)的方法實(shí)現(xiàn)

    這篇文章主要介紹了常用json與javabean互轉(zhuǎn)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)

    Java實(shí)現(xiàn)整合文件上傳到FastDFS的方法詳細(xì)

    FastDFS是一個(gè)開源的輕量級(jí)分布式文件系統(tǒng),對(duì)文件進(jìn)行管理,功能包括:文件存儲(chǔ)、文件同步、文件上傳、文件下載等,解決了大容量存儲(chǔ)和負(fù)載均衡的問題。本文將提供Java將文件上傳至FastDFS的示例代碼,需要的參考一下
    2022-02-02
  • Java中List add添加不同類型元素的講解

    Java中List add添加不同類型元素的講解

    今天小編就為大家分享一篇關(guān)于java的List add不同類型的對(duì)象,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Java批量修改文件名的實(shí)例代碼

    Java批量修改文件名的實(shí)例代碼

    幾天前在163公開課上下了一些mp4視頻文件。發(fā)現(xiàn)課程名和文件名不對(duì)應(yīng),想到編個(gè)程序批量修改。先分析網(wǎng)頁(yè)源代碼將課程名和文件名一一對(duì)應(yīng),存儲(chǔ)在一個(gè)文件里,然后使用Java讀取該文件進(jìn)而修改文件名。
    2013-04-04
  • Javaweb中使用Servlet編寫簡(jiǎn)單的接口案例詳解

    Javaweb中使用Servlet編寫簡(jiǎn)單的接口案例詳解

    文章介紹了如何使用Servlet編寫一個(gè)簡(jiǎn)單的接口來校驗(yàn)用戶提交的密碼長(zhǎng)度是否在6到12位之間,代碼分為后端部分和前端部分,給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2025-02-02
  • Java并發(fā)Timer源碼分析

    Java并發(fā)Timer源碼分析

    這篇文章講述了java并發(fā)編程的相關(guān)知識(shí)點(diǎn),并通過Timer源碼分析更深入的講解了java并發(fā)編程。
    2018-07-07
  • Java之String.format()方法案例講解

    Java之String.format()方法案例講解

    這篇文章主要介紹了Java之String.format()方法案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • java并發(fā)編程實(shí)例分析

    java并發(fā)編程實(shí)例分析

    在本文里我們給大家分享了關(guān)于java并發(fā)編程實(shí)例分析以及相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-03-03

最新評(píng)論