`
lym6520
  • 浏览: 705761 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

集思广益,这样的设计可行吗?

阅读更多
希望大家可以帮我解答下这个问题,如下图所示,为了实现一个通用dao,让实体继承抽象类,然后利用多态实现对实体的curd操作,这样做合适吗?
  • 大小: 25.2 KB
分享到:
评论
22 楼 superscorpio 2009-07-24  
cheneyjuu 写道
通用DAO?  怎么实现得这么复杂!
我觉得就要一个DAO超类,然后针对不同的数据库进行不同的实现.里面的增删改查全部是静态的.参数是OBJECT类型,然后用反射去处理实体类和数据库字段的关系.

调用的话,就在你的service或者query层调用,然后传递实体类进去就可以了.

这样很简洁呀.


有时候数据库设计出于性能的考虑,跟实体不是一一对应的。这时候,通用的dao就复杂了。

21 楼 superscorpio 2009-07-24  
lym6520 写道
希望大家可以帮我解答下这个问题,如下图所示,为了实现一个通用dao,让实体继承抽象类,然后利用多态实现对实体的curd操作,这样做合适吗?


楼主为了使用crud的功能,让实体继承了AbstractHandleObj,这样以来,实体再也没有机会继承其他类了。

但实际上,实体之间的这种继承关系是比较多的。这是对继承的一种滥用!
20 楼 thevone 2009-07-24  
yzjiang8888 写道
这样的设计考虑过于粗糙,
1、性能问题要在设计阶段做重点考虑,例如如何批量更新、删除。

2、没有考虑异常处理

3、查询的条件居然用字符串格式的hql,基本上也不符合通用接口的写法。

当然由于设计稿没有声明设计应用范围,所以我这个建议仅供参考


我也一直性做通用DAO.怎奈何怎么也做不出来。。

你的这个想法,太多东西没考虑了。。勇气可嘉,但估计你真用这个通用DAO做项目的话,后面的维护成本会更高。
19 楼 蓝月鸟 2009-07-24  
你应该去看那个鸭子的例子
那是大一下学期(最迟大二上学期)的孩子们应该学习的内容
---------------------------------------------
那个30年前的糖果公司案例
18 楼 yzjiang8888 2009-07-19  
这样的设计考虑过于粗糙,
1、性能问题要在设计阶段做重点考虑,例如如何批量更新、删除。

2、没有考虑异常处理

3、查询的条件居然用字符串格式的hql,基本上也不符合通用接口的写法。

当然由于设计稿没有声明设计应用范围,所以我这个建议仅供参考
17 楼 lym6520 2009-07-15  
tibetjungle 写道
if your JDK's version is not less than 1.5+, you can try to implement a generic dao; if it is less than 1.5, your current implementation is a proper one.

First of all, thank you for your support.
Secondly, I think the development of a version for jdk is not a problem.
Therefore, generic dao benefits he may have it!
16 楼 tibetjungle 2009-07-14  
if your JDK's version is not less than 1.5+, you can try to implement a generic dao; if it is less than 1.5, your current implementation is a proper one.
15 楼 lym6520 2009-07-14  
ldinh 写道
应该放弃ResultBean,使用泛型。
IBaseDao接口绑定了Hibernate实现。
把Query单独分离出来真的有必要么?

你应该是对的,放弃ResultBean,使用泛型!
14 楼 ldinh 2009-07-14  
应该放弃ResultBean,使用泛型。
IBaseDao接口绑定了Hibernate实现。
把Query单独分离出来真的有必要么?
13 楼 lym6520 2009-07-14  
relaxok 写道
是否可以引入范型啊?如果是hibernate实现delete感觉还是直接用主键方便一点。感觉springside里这个通用设计做的就很好,建议楼主参考一下。

谢谢,已经在看springside!
12 楼 relaxok 2009-07-14  
是否可以引入范型啊?如果是hibernate实现delete感觉还是直接用主键方便一点。感觉springside里这个通用设计做的就很好,建议楼主参考一下。
11 楼 lym6520 2009-07-13  
dizdev 写道
我觉得是一个比较好的设计,唯一的担心是,我感觉ResultBean这个模式会增加架构的复杂性和透明性。 也可能是我不喜欢不明确对象的原因。

有时候看代码,或者测试的时候,冒出来个类似ResultBean的东西,我完全不知道他是代表铅笔还是代表橡皮,或者有可能代表汽车和飞机。还是把返回Bean的操作留给IBaseDao的子Dao吧!

你说的对,实体就针对实体操作,或许这里在增加一个抽象类,专门处理返回对象的,你看这样是否会更好?不过这样又要增加三个方法了.怕方法膨胀啊!
10 楼 cheneyjuu 2009-07-13  
通用DAO?  怎么实现得这么复杂!
我觉得就要一个DAO超类,然后针对不同的数据库进行不同的实现.里面的增删改查全部是静态的.参数是OBJECT类型,然后用反射去处理实体类和数据库字段的关系.

调用的话,就在你的service或者query层调用,然后传递实体类进去就可以了.

这样很简洁呀.
9 楼 whaosoft 2009-07-13  
这个想法还行 做对美外包就能看见和你想的一样
8 楼 dizdev 2009-07-13  
我觉得是一个比较好的设计,唯一的担心是,我感觉ResultBean这个模式会增加架构的复杂性和透明性。 也可能是我不喜欢不明确对象的原因。

有时候看代码,或者测试的时候,冒出来个类似ResultBean的东西,我完全不知道他是代表铅笔还是代表橡皮,或者有可能代表汽车和飞机。还是把返回Bean的操作留给IBaseDao的子Dao吧!
7 楼 lym6520 2009-07-13  
johan 写道
楼主上面画的是UML图吗?为什么继承和实现都没搞清楚,就来整所谓的通用DAO?

已经更正了,还请指教一二!
6 楼 lym6520 2009-07-13  
johan 写道
楼主上面画的是UML图吗?为什么继承和实现都没搞清楚,就来整所谓的通用DAO?

不好意识,是修改的时候没改过来
5 楼 johan 2009-07-13  
楼主上面画的是UML图吗?为什么继承和实现都没搞清楚,就来整所谓的通用DAO?
4 楼 lym6520 2009-07-13  
repsihWDX 写道
java单继承,实体继承了你的抽象对象。我还想让他做点别的事怎么办?

能举个例子吗?
3 楼 kevin1988620 2009-07-12  
这种方法切实可行,既然是实体,就应该只有实体与实体之间的继承,不应该再有其它的继承。所以你的抽象类在实体这个范围内相当与担任了Object的角色。

相关推荐

    通信行业工程土建设计标准流程.ppt

    这一环节的目的是从不同角度对初步设计方案进行可行性、合规性以及经济性评估,确保方案的科学性和实用性。会审后,设计单位将根据反馈意见进行必要的方案调整,有时这个过程可能需要反复进行,直到各方面都对方案...

    如何增强设计提案的说服力 .doc

    邀请各方参与头脑风暴、草图绘制和设计评审,让每个人的声音都被听到,这样可以集思广益,提高提案的质量,同时也更容易获得他人的认同和支持。 5. **讲故事的艺术**:设计提案本质上是在向不同角色讲述一个连贯的...

    21揭开设计的面纱.pptx

    最终,设计师需要编写产品使用说明书,进行测试评价,确保设计的可行性与用户友好性,并通过实施方案,将设计付诸实践。 设计的特点在于其合作的本质。设计师在设计过程中需要考虑功能、材料、成本、环境影响以及...

    [南京]高层居住区规划设计文本PDF2019

    4. 联创设计:"联创"可能指的是多个设计团队合作完成项目,这种模式可以集思广益,融合多种设计理念,为项目带来创新和多样性。 5. 投标方案:这意味着设计方案是用于竞标的,通常包含对项目定位、市场分析、经济...

    高校平面设计论文.doc

    这个过程的关键是引导学生产生足够多的想法,然后通过筛选和改进,逐步形成可行的设计方案。这不仅能够锻炼学生的发散性思维,还能够帮助他们在面对设计问题时能够多方面思考,拓宽解决思路。此外,这种教学法有助于...

    煤矿开采学课程设计汇本.doc

    设计成果应当包括技术分析和经济效益的比较,确保设计方案的可行性和经济性。这样的课程设计不仅能够锻炼学生的独立思考能力,还能够强化他们对矿井开采全过程的理解,为他们未来的职业生涯奠定坚实的基础。 煤矿...

    电气工程及其自动化专业毕业设计选题的探索与实践.rar

    可行性则保证在有限的时间和资源内完成设计。 二、选题范围 1. 电力系统:如智能电网的研究、新能源接入技术、电力系统稳定性分析等。 2. 自动控制:如工业自动化生产线的设计、机器人控制、PID控制算法优化等。 3....

    代码审查Review讲义

    - **可行性**:在技术、资金、时间方面是否可行? - **优化建议**:是否存在更好的解决方案? **3.2 功能设计评审要点** - **一致性**:是否满足基本设计要求? - **完整性**:功能是否齐全且描述清晰? - **兼容性...

    循环水泵房工程施工组织设计方案(框架结构).doc

    特别是针对循环水泵房这样的关键设施,其施工组织设计必须科学合理,以确保其安全可靠和高效运行。本文档提供的《循环水泵房工程施工组织设计方案》即是围绕教学楼改扩建工程中循环水泵房的框架结构施工,全面阐述了...

    会议纪要--20190703[01]1

    经过集思广益,小组一致认为当前的数据库设计方案是可行的,能够有效地支持项目的功能需求,并为后续的迭代开发打下坚实基础。 接下来,会议转向了数据访问对象预留接口的设计。数据访问对象(Data Access Object, ...

    施工设计方案、方案封面、审核、审批表.doc

    它列出了研讨主持人、参与研讨人员的信息,以及研讨内容和结论,这是集思广益、确保方案合理性和可行性的关键步骤。参与研讨人员的签字确认了他们对研讨结果的认可。 施工组织设计(方案)审核意见表是对设计方案的...

    国际程序设计大赛作品

    他们需要将复杂问题简化为可编程的形式,同时考虑时间复杂度和空间复杂度,以确保解决方案在实际应用中的可行性。 团队合作也是大赛的一部分,多人协作可以集思广益,共同解决问题。有效的沟通和分工可以提高团队的...

    工程施工组织设计方案与专项工程施工设计方案审查制度.doc

    工程施工组织设计方案与专项工程施工设计方案审查制度,作为工程领域内一项至关重要的文档,它不仅规定了施工组织设计和专项施工方案的审查流程,而且还确立了审查的标准。这一制度的出台,是为确保工程项目的顺利...

    某公司企业标准产品质量先期策划程序文件.doc

    - 小组可行性承诺:项目团队对产品设计和制造可行性的保证。 - 产品保证计划:预防性的管理工具,涉及产品设计、过程设计及应用软件设计。 - 关键特性:影响法规要求、产品功能安全性和环保要求的特性。 - 重要...

    施工阶段的项目管理课程.ppt

    通过集思广益,确保设计意图得到准确理解,技术方案的可行性得到验证,并且在此过程中排查出可能存在的问题和矛盾,避免在实际施工中出现错误和延误。 综上所述,施工阶段的项目管理是一门涉及多方参与、多个环节...

    小学综合实践三下校园分类垃圾箱PPT教案.pptx

    设计思路的确定是一个集思广益的过程。鼓励学生提出多种设想,然后通过小组讨论,筛选出最可行的方案。在这个环节,学生可以学习到团队合作的重要性,以及如何将创新思维与实际需求相结合。 设计草图的绘制是一项...

    网络棋牌游戏开发的三个步骤.docx

    此外,团队建设也是关键,集思广益确定网站的定位,明确不同成员的职责,是保证项目顺利进行的基础。考虑到游戏设计的复杂性和风险性,聘请专业团队或与经验丰富的棋牌游戏开发商合作,能有效提高开发效率和游戏品质...

    论文开题报告的8个注意事项.pdf

    在开题报告会上,专家和同行的评审将对以上内容进行讨论,通过集思广益,确保选题的合理性、创新性和可行性。一个好的开题报告不仅能够为后续研究打下坚实的基础,还能帮助研究者在研究过程中保持清晰的方向,避免走...

Global site tag (gtag.js) - Google Analytics