gpt4 book ai didi

java - 如何修复java模块之间的循环依赖?

转载 作者:行者123 更新时间:2023-11-29 04:10:20 25 4
gpt4 key购买 nike

我正在重构代码,以便它使用模块。我面临的问题是,我在模块之间存在循环依赖:convertersapp、validatorsapp 和 modelapp。有6个模块,即:

1. convertersapp
2. exceptionsapp
3. mainapp
4. modelapp
5. serviceapp
6. validatorapp

Module dependencies

我目前的方法 - 模块信息。每个模块的java文件是:

1. convertersapp: module convertersapp {
requires modelapp;
requires gson;
requires exceptionspp;
requires validatorapp;
exports converters.others to serviceapp;
exports converters.json to modelapp;
}

2. exceptionsapp: module exceptionspp {
exports exceptions to convertersapp, mainapp,serviceapp, modelapp;
}

3. mainapp: module mainapp {
requires serviceapp;
requires exceptionspp;
requires modelapp;
}

4. modelapp: module modelapp {
exports model to mainapp, validatorapp,convertersapp, serviceapp;
exports model.sorting to mainapp,serviceapp;
requires gson;
requires exceptionspp;
requires convertersapp;
}

5. servicapp: module serviceapp {
exports service to mainapp;
requires modelapp;
requires exceptionspp;
requires convertersapp;
}

6. validatorapp:

module validatorapp {
exports validator to convertersapp;
requires modelapp;
}

最佳答案

应该避免循环依赖层次结构,因为它很难理解,而且还不清楚应该按什么顺序构建模块(A 之前 B 之前 C 之前 A ...)。

常用策略:

  • 将所有三个模块合并为一个
  • 构建一个通用的实用模块,供其他人使用,但它本身不使用其他人。
  • 移动一些类以避免循环。

关于java - 如何修复java模块之间的循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com