vczyh 最近的时间轴更新
今天是个好日子
93 天前
vczyh

vczyh

V2EX 第 469815 号会员,加入于 2020-02-18 03:33:07 +08:00
vczyh 最近回复了
19 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@byte10
没遇到过循环依赖么...
29 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@summerLast 感谢~
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@shot
这个思路跟在 service 上加一层很类似,只不过这一层是 web/app 。
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@nothingistrue
非常感谢老哥打这么多字解释。

我理解就是明确每个 Service 的职责和边界,如果需要组合那么这个就不是 User 或者 Order 的职责,这个功能应该放到别的 Service 中。

> 第二,同层之内允许从上到下的调用链,而如果是同层同模块内部,允许双向依赖——不分场合的禁止双向依赖,是违反内聚原则的。

对于这个我有一些疑问:我认为允许同层同模块互相依赖确实可以减少代码冗余,增加内聚,但我们在设计之初是否最好避免互相依赖呢。

能否通过这样的方式:在 service 下加 manager 层,manager 和 service 都不允许同层互相调用,service 可以组合多个 manager ,manager 提供一些细粒度的操作。
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@nothingistrue
情况 1:查询用户,带出对应的订单(造成 User 依赖 Order.getListByUserId(long userId)接口)
情况 2:查询订单,带出用户的某些信息(造成 Order 依赖 User.getSomeInfo(long userId))
请问这种 service 互相依赖怎么解决?
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@ChoateYao 那意思是
之前:UserService.get(long id):获取用户信息->根据用户 ID 获取所有订单信息(造成 UserService 依赖 OrderService )
改成:为了禁止 service 之间调用,在 service 层上加一层,在这一层组合 UserService 和 OrderService
可以这么理解吗?
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@libook 我也是这么认为
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
有没有同学有比较好的实践
30 天前
回复了 vczyh 创建的主题 Java 不限语言,谈谈如何避免循环依赖?
@frank1256 事实确实是你说的那样,很蛋疼。
关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2050 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 04:28 · PVG 12:28 · LAX 21:28 · JFK 00:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.