`
lym6520
  • 浏览: 704153 次
  • 性别: 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的角色。

相关推荐

    信息时代产品综合设计方法研究.pdf

    此外,群体设计方法被引入,通过团队协作,集思广益,综合运用各种创意方法,以确保设计的全面性和市场适应性。 产品综合设计的基本思想是整合所有影响设计的因素,包括市场信息、用户满意度、成本控制和技术可行性...

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

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

    21揭开设计的面纱.pptx

    然后,制定设计方案,这一步可能涉及到团队的合作,集思广益,通过规划和分析,形成初步的设计构想。接着,制作原型或模型,用实体形式展现设计概念,便于评估和修改。在这个阶段,可能会进行多次优化,以确保设计...

    高校平面设计论文.doc

    头脑风暴法鼓励学生提出大量设计方案,而不关注初期方案的可行性或质量,旨在培养学生的发散性思维和创新意识。教师在课堂上布置设计题目,让学生在限定时间内提出尽可能多的想法,随后再筛选和完善,选择满意的设计...

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

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

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

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

    代码审查Review讲义

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

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

    本文件详细阐述了循环水泵房工程的施工组织设计,旨在提供一个科学合理、安全可行的施工方案。该设计基于施工图纸、相关文件、现场条件以及国家最新技术规范,充分考虑了工程特点、功能需求和资金的有效利用,以确保...

    会议纪要--20190703[01]1

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

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

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

    国际程序设计大赛作品

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

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

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

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

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

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

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

    论文开题报告的8个注意事项 (2).docx

    5. **科研设计方案**:这部分应详细描述研究的方法、技术路线、数据来源、实验设计等,确保研究方法的科学性和可操作性。同时,需要考虑到可能遇到的技术难题和解决方案。 6. **经费、设备等物质条件的解决办法**:...

    新产品开发流程(完整资料).zip

    这个阶段需要集思广益,鼓励创新思维。 2. **概念评估**:在概念初步形成后,企业需要对其可行性和市场潜力进行评估。这包括财务分析、技术可行性研究以及初步的市场需求预测。 3. **业务案例制定**:基于概念评估...

    5组-需求变化1

    这样可以了解系统的现状,找出需要改进的地方,同时也为新系统的开发提供基础资料。 再者,观察和分析用户在实际环境中如何操作现有系统是非常有益的。这有助于开发人员捕捉到那些可能被忽视的细节,例如用户习惯、...

Global site tag (gtag.js) - Google Analytics