首页 > 解决方案 > Java层分离模块间的循环依赖

问题描述

我正在为学校分配作业,我需要在我的程序中实现层分离。我制作了一款名为 Space Invaders 的小游戏。它有效,但是当我尝试将事物分成模块时,我不断在 IntelliJ 中收到消息。

添加对模块业务的依赖会在模块音频和业务之间引入循环依赖

我还尝试将数据访问层与业务层分开。经过几个小时的战斗,我让它工作了。但不得不删除module-info.java。这不是一件好事。我一定是忽略了什么。为了使它有点视觉:)

先从我的层分离开始:【层分离图】【1】:https ://i.stack.imgur.com/wT9FC.png

【类图】【2】:https ://i.stack.imgur.com/imYI3.png

当然还有代码 :) 在这里发布有点太大了,所以这里是 GIT 的链接。

https://github.com/Koffiemolen/SpaceInvaders.git

我尝试将数据访问 HighscoreStore 和 SoundFactory 分开。SoundFactory 在音频模块中。

如果我使用的术语不正确,请告诉我。我还在学习 ;-)

标签: javaintellij-idealayer

解决方案


我找到了解决方案。module-info.java 已删除,但我仍然收到有关循环依赖的消息。

在 IntelliJ 中,您可以转到Open module settings,在此视图中您可以设置或删除依赖项。 IntelliJ 模块概述

通过这个我发现类 ControlledGameObject 依赖于控制模块。

我认为只能通过 module-info.java 设置依赖关系,但它们也存储在 moduel iml 文件中。


推荐阅读