4 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
沒(méi)有嚴(yán)格的規(guī)定。您必須使用自解釋的命名(不需要深入研究類(lèi)內(nèi)容來(lái)理解其含義)。這適用于微服務(wù)、Web 應(yīng)用程序、批處理和任何類(lèi)型的應(yīng)用程序。
我想我有很多包裹
包的主要作用是以人類(lèi)可讀的方式對(duì)事物進(jìn)行排序。
例如,如果你的包有 2 或 3 個(gè)類(lèi),你可能想知道它們的相關(guān)性。
同樣,如果一個(gè)包中有 50 個(gè)類(lèi),您也會(huì)想知道是否不應(yīng)該將它們拆分為子包。
請(qǐng)注意,包在可訪(fǎng)問(wèn)性方面也有作用:實(shí)際上,package private
訪(fǎng)問(wèn)級(jí)別允許設(shè)置/減少類(lèi)或類(lèi)成員對(duì)當(dāng)前包的類(lèi)的可訪(fǎng)問(wèn)性。它在設(shè)計(jì)和隔離方面也可能非常有用。
關(guān)于你的 3 個(gè)問(wèn)題:
問(wèn)題一:實(shí)體類(lèi)的包名必須是什么?實(shí)體還是模型?
在 Java 中,entity
一般指 JPA 實(shí)體(Spring 項(xiàng)目中的整體)。雖然model
指的是一個(gè)更一般的概念,它包括entity
但不僅因?yàn)閿?shù)據(jù)模型也可以是DTO
模型的對(duì)象和任何數(shù)據(jù)專(zhuān)業(yè)化。
如果您使用單個(gè)數(shù)據(jù)對(duì)象層(也用作 JSON 表示的 JPA 實(shí)體),則使用該model
術(shù)語(yǔ)是完全有意義的。如果您使用多個(gè)抽象級(jí)別,則按抽象級(jí)別打包更有意義。
問(wèn)題2:Searchrequest & Searchresponse 等請(qǐng)求響應(yīng)類(lèi)必須保存在哪里?在模型包中還是我必須創(chuàng)建其他包?
如果這些對(duì)象經(jīng)過(guò)每一層 : in model
,否則可能在其他地方。
問(wèn)題 3:是否存在一些包結(jié)構(gòu)標(biāo)準(zhǔn)?(請(qǐng)給我鏈接)
3) 不是真的,但根據(jù)經(jīng)驗(yàn),它應(yīng)該是不言自明的,非常清楚并且由項(xiàng)目團(tuán)隊(duì)共享,以促進(jìn)項(xiàng)目之間的一致性。

TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
創(chuàng)建包是免費(fèi)的,所以不用擔(dān)心創(chuàng)建很多包。創(chuàng)建包的目的是組織您的代碼并界定一些責(zé)任或上下文。
問(wèn)題一:實(shí)體類(lèi)的包名必須是什么?實(shí)體還是模型?
在選擇更好的名稱(chēng)之前,您需要了解這兩者之間的區(qū)別:
模型對(duì)象表示 MVC(模型視圖控制器)模式中的數(shù)據(jù)。實(shí)體對(duì)象表示 ORM(對(duì)象關(guān)系映射)模式中的數(shù)據(jù)。它們可能是同一個(gè)對(duì)象?;虿?。
因此,您可以將實(shí)體用作模型類(lèi),即使我認(rèn)為這是一種不好的做法。如果是你的情況,也許你更喜歡使用model
作為包名。如果不是,entity
是正確的選擇。
問(wèn)題2:Searchrequest & Searchresponse 等請(qǐng)求響應(yīng)類(lèi)必須保存在哪里?在模型包中還是我必須創(chuàng)建其他包?
這些類(lèi)與控制器包非常相關(guān)。因此,您可以創(chuàng)建這兩個(gè)包并將請(qǐng)求和響應(yīng)放在那里,每一個(gè)都在他的包中:
controller.response controller.request
問(wèn)題 3:是否存在一些包結(jié)構(gòu)標(biāo)準(zhǔn)?(請(qǐng)給我鏈接)
請(qǐng)參閱此答案:Are there best practices for (Java) package organization?

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超5個(gè)贊
沒(méi)有特定的標(biāo)準(zhǔn)結(jié)構(gòu),它會(huì)根據(jù)您的需要而變化。
實(shí)體類(lèi)應(yīng)該在域包下,不要附加類(lèi)名。它可以像 Book.class、School.class 等,
搜索請(qǐng)求和響應(yīng)是請(qǐng)求和響應(yīng)類(lèi),它應(yīng)該在控制器包下。這些都是服務(wù)端點(diǎn)。
檢查鏈接
大多數(shù)情況下,SERVICE 包將包含所有具有業(yè)務(wù)邏輯并與 DAO 類(lèi)連接的服務(wù)類(lèi),Controller 將包含所有其余端點(diǎn),Model 包將包含 pojo 類(lèi)。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
添加回答
舉報(bào)