JiveJdon Community Forums
在线266人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 5 回复 / 1
 发表新帖子   回复该主题贴
smcdl

悄悄话
发表文章: 7
注册时间: 2004年03月16日 16:20
问一个关于Service层的同层依赖问题 2007年09月06日 11:24 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表 service(10)      ddd(129)     
按照DDD的思想,我对我的项目也设计了Service层,但对Service层还没有详细的划分,可能我的应用还没有达到很复杂的程度,等有时间banq大哥给讲讲如何对Service再分层。

这里遇到一个问题,就是我在一个Service A里写的一些业务处理代码,在另一个Service B里也想使用这段代码,如果直接copy的话就违反了代码复用原则,但是如果让B直接调用A的方法觉得比较怪,因为我是用Spring把Service直接注入Action中的,A和B之间没有直接的引用。

请问banq大哥,遇到这种情况你是如何解决的?
slangmgh

悄悄话
发表文章: 51
注册时间: 2007年09月05日 11:14
回复:问一个关于Service层的同层依赖问题 2007年09月06日 12:53 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
首先,你得确定一件事情,就是Service A确实需要调用Service B还是Service A需要使用到Service B中的一段代码。

如果是前者,那就是Service A调用Service B,毫无疑问。

如果是后者,你应该考虑将Service B的那段代码单独拿出来(放在哪里你自己考虑,当然不能放在Service B中),Service A和Service B都调用这段代码。
smcdl

悄悄话
发表文章: 7
注册时间: 2004年03月16日 16:20
re:问一个关于Service层的同层依赖问题 2007年09月06日 12:58 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
是需要调用整个方法,不是一段代码。
我是用Spring来管理对象,Service对象被注入到Action中,如果在Service中注入Service,总是觉得不伦不类的
slangmgh

悄悄话
发表文章: 51
注册时间: 2007年09月05日 11:14
回复:re:问一个关于Service层的同层依赖问题 2007年09月06日 13:11 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>我是用Spring来管理对象,Service对象被注入到Action中,如果在Service中注入Service,总是觉得不伦不类的

假如Spring的官方文档中提供了这种用法,你还会这么觉得吗?

事实上,你在设计Service的时候,就必须考虑Service之间是否允许相互调用,如果允许的话,采用何种方式进行调用,其约束条件是什么?

先别去考虑形式,到底是“注入”还是直接调用。如果你发现这两个服务确实是紧耦合的,就直接调用,如果你发现两者不是紧耦合的,就用注入。
smcdl

悄悄话
发表文章: 7
注册时间: 2004年03月16日 16:20
re:问一个关于Service层的同层依赖问题 2007年09月07日 17:42 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
是不是应该在Service下再加入一层更好呢?
我知道把不同的行为分别封装到不同的Service中,但是有时候还是有一些重复的代码,不想在多个Service中copy,请问大家是不是都遇到过这样的问题,大家都是怎么样解决的?
banq

悄悄话
发表文章: 9528
注册时间: 2002年08月03日 17:08
回复:re:问一个关于Service层的同层依赖问题 2007年09月07日 18:27 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
>就是我在一个Service A里写的一些业务处理代码,在另一个Service B里也想使>>用这段代码,如果直接copy的话就违反了代码复用原则

将这段代码重构成一个新的类,service A和B共同调用

可以在Service下再加入一层
这个主题有 5 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam