JiveJdon Community Forums
在线233人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 6 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
saharabear

发表文章: 25
注册时间: 2007年02月15日 13:25
给他发消息
请教一个对Dao调用的封装的设计 发表: 2008年03月23日 12:38 回复
我在项目中碰到下面的一个情况:
有一个父类是BaseMember,这是一个Domain,然后分别有三个子类,为HouseMember, AgentMember, CommonMember,都继承自BaseMember.

这三个子类分别对应HouseMemberDao, AgentMemberDao, CommonMemberDao.每个dao中都有对应的save方法,分别为saveHouseMember();saveAgentMember()和saveCommonMember();

而在前台页面中,是通过一个下拉菜单确定注册的用户是属于哪一种Member.而我想实现的就是,如何设计,可以实现:
我把一个对象传进去,就可以自动寻找正确的Dao来调用.

谢谢!
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
回复:请教一个对Dao调用的封装的设计 发表: 2008年03月24日 12:08 回复
那Dao就不要做三个,只要做一个BaseMemberDao就可以,使用Hibernate的sub-class配置自动实现。
saharabear

发表文章: 25
注册时间: 2007年02月15日 13:25
给他发消息
回复:回复:请教一个对Dao调用的封装的设计 发表: 2008年03月24日 13:52 回复
 这就是问题的所在,因为这部分存在的问题是,我没有权力改变Dao的实现.
谢谢banq老师.
saharabear

发表文章: 25
注册时间: 2007年02月15日 13:25
给他发消息
回复:回复:回复:请教一个对Dao调用的封装的设计 发表: 2008年03月24日 15:29 回复
如果只有一个MemberDao,而不设计三个Dao,那么,用一个方法getMemberList(),里面使用loadAll(Member.class)获取所有Member.而有没有什么办法知道List中哪些对象是属于哪些子类?
killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息
回复:请教一个对Dao调用的封装的设计 发表: 2008年03月24日 19:11 回复
MemberDao是针对抽象类型Member的操作的,没有职责去知道里面哪些对象是属于哪些子类,这个是外部调用者的职责,它调用你的方法后再去做判断。在外部可以用instanceof作判断
saharabear

发表文章: 25
注册时间: 2007年02月15日 13:25
给他发消息
re:请教一个对Dao调用的封装的设计 发表: 2008年03月24日 20:28 回复
恩,也许我的系统中存在这个设计缺陷,因为这个地方的判断,我基本上没有权限处理,因为这个模块不在我这边.

头疼..
killer

发表文章: 106
注册时间: 2007年07月17日 15:40
给他发消息
回复:re:请教一个对Dao调用的封装的设计 发表: 2008年03月26日 16:02 回复
无力改变那就尝试着去适应吧,呵呵
这个主题有 6 回复 / 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