Здесь нет строгих правил.Вы должны использовать наименование, которое говорит само за себя (не нужно копаться в содержании классов, чтобы понять его значение).Это подходит для микро-сервисов, веб-приложений, пакетных и любых приложений.
Я думаю, что у меня много пакетов
Основная роль пакетов - сортировать вещи понятным для человека способом.
Например, если у вас 2 или 3Классы по пакетам, вы можете задаться вопросом об их релевантности.
Точно так же, если у вас есть 50 классов в пакете, вы также можете поинтересоваться, не следует ли разделить их на подпакеты.
Обратите внимание, что пакет также играет рольс точки зрения доступности: действительно, уровень доступа package private
позволяет установить / уменьшить доступность класса или члена класса к классам текущего пакета.Это также может быть очень полезно с точки зрения дизайна и изоляции.
О ваших 3 вопросах:
вопрос 1: каким должно быть имя пакета классов сущностей?сущность или модель?
В Java entity
обычно относится к сущности JPA (в целом в проекте Spring).В то время как model
относится к более общей концепции, которая включает entity
, но не только, поскольку модель данных также может быть объектами DTO
и любой специализацией данных вашей модели.
Если вы используете один слой объектов данных (Объекты JPA, которые также используются в качестве представления JSON), использование термина model
имеет смысл.Если вы используете несколько уровней абстракции, пакет по уровням абстракции имеет больше смысла.
вопрос 2: где необходимо сохранить Searchrequest & Searchresponse и другие классы ответа на запрос?в модели пакета или я должен создать другой пакет?
Если эти объекты проходят через каждый слой: в model
, в противном случае, вероятно, в другом месте.
вопрос 3: выходит ли какой-нибудь стандарт для структурирования пакетов?(пожалуйста, дайте мне ссылку)
3) Не совсем, но, как правило, это должно быть само собой разумеющимся, очень понятным и разделенным командой проектов для обеспечения согласованности между проектами.