我正在完成一项任务,我应该设计一个分为模块的简单电话簿应用程序。
现在就是这种情况:
所以,有循环参考。你能帮我解决这个设计问题吗?
答案 0 :(得分:3)
答案在你的问题中。问题在于设计。解决方案的关键是为每个模块分配不同的目的,分离关注点并避免相互依赖。
您可以探索的其他选项包括
这里的反模式似乎是你依赖image/jpeg
模块。这不太可能是理想的。您应该避免将模块依赖于高达堆栈的单元。 这是我首先尝试更改:将电话簿网络中的共享代码提取到其中一个共享模块中。
制作较小的模块。 Maven对此没有任何问题。
如果web
取决于a
包b
,c
取决于b
for java package a
,那么你可以将包d
和c
提取到一个单独的模块中,d
和a
都具有相关性。
检查您是否真的需要单独的模块。
也许在单独的模块中考虑b
,phonebook-api
和phonebook-server
并不是必需的。除非您打算在不同的应用程序中重用这些模块,否则最好将单phonebook-web
与所有当前模块一起使用。代码。