锁定老帖子 主题:请教关于domain对象注入service
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-01-09
注入相关的service,不知道这样的设计是好还是坏。 因为这个service是这个domain对象的某个行为不可缺少的一部分. 举个例子, 在User这么一个domain对象中, 需要有一个支付这么一个行为,暂时称它为pay 在pay的时候,需要调用相关的service来完成支付的操作. public class A{ private PayService payService; public void pay(){ payService.doPay(this); } } 不知道这样的设计是否存在问题.. 如果有问题的话,又应该如何设计呢. 本人小菜一个,望各位大大不吝赐教 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-01-09
乱套了~~
依赖关系最好是一个单向的~ 一般来说应该service依赖于domain比较好 但如果domain反过来依赖service,就不是很好看了~而且代码很不容易理解~ |
|
返回顶楼 | |
发表时间:2009-01-09
czx566 写道 乱套了~~ 依赖关系最好是一个单向的~ 一般来说应该service依赖于domain比较好 但如果domain反过来依赖service,就不是很好看了~而且代码很不容易理解~ 首先谢谢您的回答 可是对于一个domian对象来说 比如例子里面的User pay作为User的一个行为不是很正常吗. 嗯,就是写着写着,总觉得domain对象依赖service很奇怪。 所以想请教看看, 这样的方式是否是种不好的设计, 以及这种设计会有什么利弊 |
|
返回顶楼 | |
发表时间:2009-01-09
我认为这要看你的domain是不是一个层次的,如果上下两个层次的domain通过service调用就没问题,同一层次的肯定不行.像lz例子里的user和pay就不是两个层次的,pay更底层,就可以.
|
|
返回顶楼 | |
发表时间:2009-01-09
kakac001 写道 czx566 写道 乱套了~~ 依赖关系最好是一个单向的~ 一般来说应该service依赖于domain比较好 但如果domain反过来依赖service,就不是很好看了~而且代码很不容易理解~ 首先谢谢您的回答 可是对于一个domian对象来说 比如例子里面的User pay作为User的一个行为不是很正常吗. 嗯,就是写着写着,总觉得domain对象依赖service很奇怪。 所以想请教看看, 这样的方式是否是种不好的设计, 以及这种设计会有什么利弊 在我看来,就是设计时,对于方法的粒度没有把握好 user 对象的确可以有扣款 ,加余额的 方法,但这些不应该关注事务和业务~ 不过设计到支付(包含事务的业务方法)这样的大粒度方法,我认为应该放到service层中才是合理的。 |
|
返回顶楼 | |
发表时间:2009-01-09
Nightlee 写道 我认为这要看你的domain是不是一个层次的,如果上下两个层次的domain通过service调用就没问题,同一层次的肯定不行.像lz例子里的user和pay就不是两个层次的,pay更底层,就可以.
不知道是我不是我理解错了.. 不是很明白你的意思.. 在这边pay不是一个domain 而是User的一个行为. |
|
返回顶楼 | |
发表时间:2009-01-09
to czx566
嗯.感谢您的回复, 原本项目里面的逻辑就是pay是作为User的一个行为来做的. 现在在重构的时候发现需要改变相应的pay方法, 就很自然的用到了现在的service的方式.. 大概知道要怎么去改了..不过可能没那么好改,呵 对了..不知道这种service的注入会有什么不好的地方.. 您有何高见呢? |
|
返回顶楼 | |
发表时间:2009-01-09
已经回答了:
依赖顺序最好是从下到上,好像有一条法则~~~ 目的:比较能让人理解 代码我一直认为:第一是能让机器明白,但同时也能让他人明白~ |
|
返回顶楼 | |
发表时间:2009-01-09
而且这样也好像容易让陷入内存泄露的风险~
|
|
返回顶楼 | |
发表时间:2009-01-09
嗯.了解了. thx
题外话..这些“法则”有哪里有专门的介绍吗? |
|
返回顶楼 | |