Расположение классов - PullRequest
       20

Расположение классов

0 голосов
/ 05 апреля 2019

Доброе утро, в моем проекте я использую трехуровневую архитектуру, у меня есть один пакет для контроллера и один для обслуживания, а другой - для модели данных и репозиториев (я использую данные весны).

Так что мне нужно создать несколько классов только для веб-сервисов в пакете контроллеров.

Мой вопрос: лучше ли создавать эти классы в пакете контроллеров или в пакете модели, или в пакете модели могут быть только типы, которые необходимо сохранить?

Заранее спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019

После многих лет работы с многослойными архитектурами, лучшая практика - группировать классы таким образом, чтобы это имело смысл для вас и ваших разработчиков. Смотрите следующий пример:

├── src
│   ├── main
│   │   ├── java
│   │   │   └── com
│   │   │       └── bytesw
│   │   │           └── agreement
│   │   │               └── admin
│   │   │                   ├── Application.java
│   │   │                   ├── data
│   │   │                   │   ├── bo
│   │   │                   │   │   ├── Account.java
│   │   │                   │   │   ├── Customer.java
│   │   │                   │   │   ├── User.java
│   │   │                   │   └── repository
│   │   │                   │       ├── AccountRepository.java
│   │   │                   │       ├── CustomerRepository.java
│   │   │                   │       └── UserRepository.java
│   │   │                   ├── exception
│   │   │                   │   ├── DuplicatedRecordException.java
│   │   │                   │   ├── NoResultException.java
│   │   │                   │   └── UnknownErrorException.java
│   │   │                   ├── web
│   │   │                   │   └── controller
│   │   │                   │       ├── AccountController.java
│   │   │                   │       ├── CustomerController.java
│   │   │                   │       └── UserController.java
│   │   │                   └── service
│   │   │                       ├── AccountService.java
│   │   │                       ├── CustomerService.java
│   │   │                       └── UserService.java
│   │   └── resources
│   │       ├── application.yml
│   │       ├── bootstrap.yml
│   │       ├── logback-spring.xml
│   │       └── messages
│   │           ├── message_es.properties
│   │           └── message.properties

Предыдущие примеры групповых классов в пакетах:

BO (Бизнес-объект) Объекты, которые представляют данные

Исключение Ваши собственные классы исключений

Веб-контроллер Если вы собираетесь строить отдых, все ваши контроллеры должны быть здесь.

Услуга Ваши классы обслуживания при необходимости.

Ресурсы Все ресурсы вашего приложения

...