【发布时间】:2016-05-26 22:41:09
【问题描述】:
这是一个关于应用程序代码设计的问题。这是我的情况:
我有一个名为 Report 的数据库表,它表示用户在给定月份的工作时间。我有一个 DAO 来处理数据库和一个 @Service,它封装了 dao 的方法并用报告做更多的事情。
此外,我有一个表目标,用于为用户分配关于他们活动的目标(目标可以是每月或每年)。我又有了一个 DAO 和一个 @Service 来使用这些实体。
我的问题是关于设计的,因为我在两个服务之间存在双向关联,尤其是对于以下流程:
- 添加、修改或删除报表时,报表服务需要更新目标服务..
- 当我们需要计算一个目标的进度时,目标服务需要报告服务
我正在重构我的应用程序,看到两个相互需要的 bean bean 让我觉得这不太好......
有没有办法正确设计这种情况(我的意思是我的两个服务之间的关联)还是应该保持双向关联?
【问题讨论】:
-
你没有定义服务接口吗?这样你就不会依赖服务 bean(实现)。
-
是的,我的服务和 DAO 都使用接口。但是,在我的实现中,两个类之间仍然存在这种“循环”链接,这不是很漂亮且难以维护,尤其是在我的单元测试中..
-
为什么目标必须在报告发生突变时发生变化?你能解释一下吗?
-
当一个报表被修改时(例如通过改变总工作时间),我必须通知Target的Service以便更新与这个报表相关的Target对象(如果有的话),更新进度(%)。这将确保两个对象之间具有良好的数据一致性...
标签: java spring associations bidirectional