论坛首页 Java企业应用论坛

请教关于domain对象注入service

浏览 16408 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-01-12  
其实lz讲到了一个 domain和 service如何切分的问题?
Service业务逻辑与Domain业务逻辑切分的原则
两种原则:
1. 领域模型只包含了不依赖于持久化的领域逻辑,而那些依赖持久化的领域逻辑被分离到Service层。
2. 使用Rod Johnson的”case by case”原则。可重用度高的,和domain object状态密切关联的放在domain中,可重用度低的,和domain object状态没有密切关联的放在Service中。
0 请登录后投票
   发表时间:2009-01-13  
kakac001 写道
嗯.了解了. thx

题外话..这些“法则”有哪里有专门的介绍吗?


http://cavingdeep.cnblogs.com/archive/2004/10/28/208956.html
0 请登录后投票
   发表时间:2009-01-14  
domain 当作是个体行为。。。

service 当作是群体行为。。。。

这么区分就可以了
0 请登录后投票
   发表时间:2009-01-14  
虽然大家有点烦EJB,但他里面的entity(特别是ejb3以后),和session的关系和你讲的关系有点相似哦。
实体和操作分开也是sun的选择。

说的不对的,荒淫大家拍砖
0 请登录后投票
   发表时间:2009-01-15  
可以这样,但是软件分层就不明显了吧,你理解了并不代表团队其他人能理解。而且这样我觉得也不是很通用。可能会造成很多重复代码。重构性不是很好。
0 请登录后投票
   发表时间:2009-01-16  
我的做法是:
1.domain中只定义属性,getter,setter,所谓贫血模型。
2.在service层注入dao,对数据进行操作。
3.struts2+spring可以把action作为service层,只要自己继承一个继承自ActionSupport的父类,以后容易移植。
4.使用spring+hibernate可以写一个公共类,实现dao层是一个只有一个类的层。
0 请登录后投票
   发表时间:2009-01-18  
你说的domain是什么
0 请登录后投票
   发表时间:2009-01-19  
zzq230 写道
其实lz讲到了一个 domain和 service如何切分的问题?
Service业务逻辑与Domain业务逻辑切分的原则
两种原则:
1. 领域模型只包含了不依赖于持久化的领域逻辑,而那些依赖持久化的领域逻辑被分离到Service层。
2. 使用Rod Johnson的”case by case”原则。可重用度高的,和domain object状态密切关联的放在domain中,可重用度低的,和domain object状态没有密切关联的放在Service中。

我觉得我同意这个说法
带持久化的逻辑还是不要放在domain object里的好
0 请登录后投票
   发表时间:2009-01-19  
kakac001 写道
抛出异常的爱 写道
当一个业务逻辑包含了N个表,N个DAO,N个逻辑关系
N大于5时
125种组合......
人的脑子一般是思考不过来的.
用domain封来封去....事务,边际变模糊了.......
最后都放到action里去作事务.


呵.貌似大部分人都推荐用单纯的service来做.
原本是想说pay作为User的一个行为,会更oo一些.

昨天也有就这个问题请教了下一位牛人.
是这样的看法,这个问题目前没有一个绝对的准则来说是好是坏,
各有利弊,需要自己去权衡.
作为他本人,他也是比较不倾向于充血.
也正如异常这边说的,这样的耦合性大了许多.
之后可能不好控制

呵..谢谢大家了..

前几天遇到一个问题.
需要把cookie的user用户的一些属性传到dao中去.
中间service一点没用上.
改了三个类之后恶心的厉害......
测试又没办法测,
传过去又没什么大用.
不如把内容放在用户中
把用户传到后台去
想想还是不能免俗

还真是没有dmain没办法
圆满完成这种杂技动作
0 请登录后投票
   发表时间:2009-01-19   最后修改:2009-01-19
还是就楼主的疑问。我感觉自己之前的回复有些片面了。
面向对象不仅仅单纯的是:某个对象有哪些属性和行为,把这些属性和行为封装到一个类里——认为这就是面向对象了。
一个程序是否是面向对象的设计,还需要考查它是否符合:单一职责原则、开放封闭原则、依赖倒置原则等设计原则。
这说开了就太大了,我就捣一下乱吧。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics