JiveJdon Community Forums
在线288人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 项目工程开发经验谈
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 5 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
67099994

发表文章: 3
注册时间: 2006年03月15日 10:25
给他发消息
关于把Service给简化一些的问题 发表: 2007年05月15日 16:03 回复
先说下我最近做的一个小的人力资源管理系统。
数据库都是用 Dao访问的,负责返回一些 pojo,我的pojo 都是和数据库表或者视图对应的,Dao 负责把结果集包装为pojo。
Service层,我基本都是把Dao 层重新包装了一下,当然可能是我的系统比较简单哦,每个pojo对应一个Service,如EmployeeService,SalaryService等。
最后web 页面是通过 IOC方式获得Service的,任何得到一些Pojo进行处理...
现在呢,我想添加一些页面,主要都是查询数据库的功能,如 select count(*) from ...! 这样的话,我就要给 dao,service 接口添加方法,然后再实现,(我都是用接口+实现的方式开发的)。这样感觉比较麻烦,我想知道大家有没有一些比较好的建议能够把Service给简化一些,
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:关于把Service给简化一些的问题 发表: 2007年05月16日 11:20 回复
这样做不麻烦,问题是你没有找到你继续做下去的指南针,这就是Evans DDD,你应该学习Evans DDD了。DDD会告诉你如何做Service,如何围绕Model展开详细业务。
67099994

发表文章: 3
注册时间: 2006年03月15日 10:25
给他发消息
re:关于把Service给简化一些的问题 发表: 2007年05月16日 12:30 回复
多谢banq 指点,这几天仔细研究一下 DDD
我以前也看了一些,不过不太理解!

eyeqq

发表文章: 9
注册时间: 2007年08月06日 15:02
给他发消息
re:关于把Service给简化一些的问题 发表: 2008年01月27日 15:49 回复
学习DDD有什么好书可以推荐一下呢?
killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息
回复:re:关于把Service给简化一些的问题 发表: 2008年01月28日 21:28 回复
>学习DDD有什么好书可以推荐一下呢?
《领域驱动设计--软件核心复杂性应对之道》
【作 者】(美)Eric Evans [同作者作品] [作译者介绍]
【译 者】 陈大峰[同译者作品] 张泽鑫 等
【出 版 社】 清华大学出版社
johnnylzb

发表文章: 18
注册时间: 2008年02月03日 13:41
给他发消息
re:关于把Service给简化一些的问题 发表: 2008年02月03日 16:40 回复
个人觉得这是一个系统设计的问题,而不是编码实现技巧的问题。

一、对于Service,本人是这样认为的:Service是业务层,是整个系统的核心,不存在简单不简单的问题,你的Service提供多少种“服务”,你就必须暴露多少个接口,就如一个公司,每个业务都需要分类。Service层是不能抽象的,比如你想修改用户资料,DAO层可以抽象为“Update UserDO”,甚至进一步抽象为“Update Persistent Object”,但对于Service,“修改用户”可能表现为多种业务,例如:

1)修改用户状态(管理员做的事情)
2)修改用户信息(管理员和用户做的事情)
3)修改用户密码(用户做的事情)

对于这三种服务,其实都可以抽象为“Update UserDO”,为了简化Serivce,你可以设计一个服务接口:
public void update(UserDO userDO) throws ServiceExeption);

但,这样做,业务就无法分开了,如果需要进行权限控制,日志记录,系统根本无法做到。

结论:企图通过抽象和编程技巧简化Service是不合理的(当然,可以通过编程技巧,把多个操作的公共逻辑抽象成一个私有方法,这是值得提倡的)

二、针对DAO ,其实是可以简化的,其实DAO是与业务无关的,抽象上看,无非是“增删改查”,对于查询,可以提供一个接收“SQL”语句和参数的通用方法,对于查询数量,可以提供一个特定的方法,接收特定条件,再结合Java的泛型技术,完全可以设计出一个高度重用的DAO接口。
这个主题有 5 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

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

anti spam