4 回答

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

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