Это вопрос проектирования кода приложения. Вот моя ситуация:
У меня есть таблица db с именем Отчет, который представляет собой время работы пользователя в течение заданного месяца. У меня есть DAO для работы с базой данных и @Service, которая инкапсулирует методы dao и делает больше материалов с отчетами.Разработка кода Java двунаправленная связь
Кроме того, у меня есть таблица Цель, чтобы назначать цели пользователям о своей деятельности (цели могут быть ежемесячными или годовыми). У меня снова есть DAO и @Service для использования этих объектов.
Мой вопрос о дизайне, потому что у меня есть двунаправленную связь между двумя службами, особенно для следующих процессов:
- Сервис Отчет должен обновить целевую службу, когда отчет добавлены, изменены или удалено ..
- мишени служба нуждается в службе отчетов, когда нам нужно рассчитать прогрессию мишени
Я рефакторинг моего приложения и видим два фасоль бобы, которые нуждаются друг от друга заставляют меня чувствовать т его не так хорошо ...
Есть ли способ правильно спроектировать эту ситуацию (я имею в виду связь между двумя моими службами), или я должен оставаться с двунаправленной ассоциацией?
Вы не определяете интерфейс службы? Таким образом, у вас нет зависимости от сервисных компонентов (реализаций). –
Да, я использую интерфейсы как для моих сервисов, так и для моих DAO. Но в моих реализациях у меня все еще есть эта «круговая» связь между двумя классами, что не очень красиво и сложно поддерживать, особенно в моих модульных тестах. – gWombat
Почему цели должны быть мутированы в отчетах? Не могли бы вы объяснить это? – plalx