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

vczyh

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

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

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

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

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