Как использовать шаблон проектирования для упорядочивания файловой структуры в приложении java + spring - PullRequest
1 голос
/ 12 июля 2020

Я создал веб-приложение, которое получает данные от пользователя с консоли, сохраняет данные в MongoDB и передает данные во внешний интерфейс Angular с помощью Spring rest api.
Вся система работает нормально, и теперь я хотите изменить структуру папок в соответствии с шаблоном проектирования, и, как показано ниже, я попытался использовать модель MVC, но я не уверен, правильно ли переупорядочен файл. Я мало знаю о шаблонах проектирования. Пожалуйста, помогите мне с этим вопросом, и если приведенная ниже структура неверна, пожалуйста, помогите мне исправить ее.

введите описание изображения здесь

Контроллер

BookController - класс с остальным API для передачи данных в angular интерфейс (класс контроллера REST) ​​

Модель

Книга - Родительский класс с переменными и соответствующими методами
Роман - Дочерний класс с переменными и соответствующими методами
Стихи - Дочерний класс с переменными и соответствующими методами
MyBookManager - Реализованный класс интерфейса BookManager, который включает грубые операции с mongoDB

View

BookManager - Интерфейс, связанный с MyBookManager
Console - Класс, который принимает ввод от пользователей из консоль и вызывает методы в MyBookManager для сохранения их в DB

Repository

BookRepository - Интерфейс, расширяющий MongoRepository

Осталось классы

BookStoreApplication - класс, который включает основной метод (класс выполнения)
ErrorHandle - класс, который включает методы для val idations

1 Ответ

1 голос
/ 12 июля 2020

В целом хорошее расположение классов. Единственное, что я могу предложить, - это переместить BookManager и MyBookManager в пакет Controller. Причина в том, что он находится между представлением (консолью) и моделью (базой данных), он может изменять модель (путем обновления базы данных) и может содержать некоторые бизнес-логи c о том, как правильно анализировать ввод пользователя. .

Если вы хотите дополнительно отделить BookManager от контроллера, вы можете назвать его BookService и поместить в пакет с именем Service (вместе с MyBookService).

Что касается шаблонов проектирования, MVC - это архитектурный шаблон, а не шаблон проектирования. Я связываю вас с другими вопросами для получения дополнительной информации:

...