设计

wtuihpl 2008-10-18 09:30:59
问个简单的问题。。 就是业务层的类是否可以依赖别的业务层的类。。
还是应该都是互相独立的.?
...全文
73 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
DiscussQuestions 2008-10-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Landor2004 的回复:]
当然可以依赖呀,复杂的业务层的类其实就是由多个其他业务层的类组成的。

拿spring来说,它的事务传播行为就是来处理业务层相互调用的情况的,当一个业务方法调用另外的业务方法时候,根据spring的配置,会选择事务的合并或者独立开启式事务等方式来做。比如REQUIRED就是当一个业务方法调用另一个业务方法的时候,第二个业务方法会加入到第一个业务方法的事务当中,还有其他的一些
请楼主自己搜说一下
[/Quote]

[6]楼说的没有错!~!从理论上说业务都是独立的!~!
但是从实际情况出发!~!我们还是可以去依赖不同的业务类~!!
而且我试过了!~!在业务类之间的相互注入也不会报错的!~!
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wtuihpl 的回复:]
嗯,谢谢楼上的回复。。
如果一个客户端需要访问多个业务类的某个方法。。是否应该在建立一个公共的业务类。。客户端就依赖自己的一个业务和那个公共的业务?
看到迪米特设计思想是 “只与朋友通信,不与陌生人通信”, 那么多个业务互相依赖,是否有必要把相互依赖的方法独立出来?
[/Quote]

既然客户端需要访问多个业务类的某个方法,不应该建立一个公共类,
而是应该建立一个接口来声明那些公共的方法,在具体的业务类中实现,
这样客户端调用的就是你相应的业务类实现的功能了
wtuihpl 2008-10-19
  • 打赏
  • 举报
回复
嗯,谢谢楼上的回复。。
如果一个客户端需要访问多个业务类的某个方法。。是否应该在建立一个公共的业务类。。客户端就依赖自己的一个业务和那个公共的业务?
看到迪米特设计思想是 “只与朋友通信,不与陌生人通信”, 那么多个业务互相依赖,是否有必要把相互依赖的方法独立出来?
wtuihpl 2008-10-19
  • 打赏
  • 举报
回复
真不好意思,分太少了,谢谢大家的回复·!!
ouyangqinxin 2008-10-19
  • 打赏
  • 举报
回复
spring的反转机制就要求我们我们和接口紧耦合,但不和具体的类紧耦合。这样才可以实现spring的强大功能

over
wtuihpl 2008-10-18
  • 打赏
  • 举报
回复
是的,我就是用 spring .. 都有接口的。不过出现了循环依赖。。

还有就是 比如我的客户端需要 A,B 两个业务的方法,我是这样做的,因为大部分使用的都是 A。
我在 A 中提供了一个方法 客户端调用 A 中的方法,然后 A 在去调用 B 的方法。。
不知道这样做合理不。。

因为使用的是 Spring 的依赖注入,刚好,B 也依赖了A,所以出现了依赖循环错误。。

Landor2004 2008-10-18
  • 打赏
  • 举报
回复
当然可以依赖呀,复杂的业务层的类其实就是由多个其他业务层的类组成的。

拿spring来说,它的事务传播行为就是来处理业务层相互调用的情况的,当一个业务方法调用另外的业务方法时候,根据spring的配置,会选择事务的合并或者独立开启式事务等方式来做。比如REQUIRED就是当一个业务方法调用另一个业务方法的时候,第二个业务方法会加入到第一个业务方法的事务当中,还有其他的一些
请楼主自己搜说一下
ZangXT 2008-10-18
  • 打赏
  • 举报
回复
学习.
老紫竹 2008-10-18
  • 打赏
  • 举报
回复
2个业务
老紫竹 2008-10-18
  • 打赏
  • 举报
回复
就是业务层的类是否可以依赖别的业务层的类。
就算2个业务是紧密相关,你依然可以通过接口实现松耦合。
我们和接口紧耦合,但不和具体的类紧耦合。我们就可以随时替换,增强我们的实现了。
OVER
老紫竹 2008-10-18
  • 打赏
  • 举报
回复
就是业务层的类是否可以依赖别的业务层的类。
就算2个页数是紧密相关,你依然可以通过接口实现松耦合。
我们和接口紧耦合,但不和具体的类紧耦合。我们就可以随时替换,增强我们的实现了。
OVER
hl_ghost 2008-10-18
  • 打赏
  • 举报
回复
强内聚,弱耦合,自己把握呗

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧