首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

承继在开发中的使用

2012-10-21 
继承在开发中的使用前段时间,红帽公司的高级架构师来公司培训了hibernate的高级应用,因为本人是做前台转到

继承在开发中的使用
前段时间,红帽公司的高级架构师来公司培训了hibernate的高级应用,因为本人是做前台转到做后台的,所有好多东西是云里雾里的。当时老师讲到领域模型设计以及hibernate的继承的使用,刚开始并没理解对象继承的作用,感觉继承也减少不了多少工作量。而且hibernate的延迟加载还不支持 向下转型 和instanceof  以为这东西在我实际开发中使用价值不大。但最近的一个项目,我试着使用领域模型进行设计并且在实施中发现了许多好处。
任务计划需求:任务计划分个人任务:也就是私人任务;定期性任务:就是固定时间要做的一些任务,比如上传报表之类的任务.;工作任务:就是上级指派给下级需要完成的任务。
这三种任务在不同的界面进行增加,但需要在一个界面进行展示,也就是现在业界比较流行的日视图,周视图,月视图之类的。这种情况采用继承就比较方便
任务计划的对象xml为

 select        task0_.TASK_ID as TASK1_21_0_,        task0_.UPDATE_BY as UPDATE2_21_0_,        task0_.UPDATE_TIME as UPDATE3_21_0_,        task0_.ARCHIVE_FLAG as ARCHIVE4_21_0_,        task0_.ACCREDIT_ROLE_NAME as ACCREDIT5_21_0_,        task0_.ACCREDIT_ROLE_ID as ACCREDIT6_21_0_,        task0_.ACCREDIT_ORG_ID as ACCREDIT7_21_0_,        task0_.ACCREDIT_ORG_NAME as ACCREDIT8_21_0_,        task0_.ACCREDIT_USER_ID as ACCREDIT9_21_0_,        task0_.ACCREDIT_USER_NAME as ACCREDIT10_21_0_,        task0_.START_TIME as START11_21_0_,        task0_.END_TIME as END12_21_0_,        task0_.TASK_TYPE as TASK13_21_0_,        task0_.AWOKE_TIME as AWOKE14_21_0_,        task0_.TASK_CONTENT as TASK15_21_0_,        task0_.TASK_TITLE as TASK16_21_0_,        task0_.TASK_STATE as TASK17_21_0_,        task0_.INNER_NOTE as INNER18_21_0_,        task0_.ISSUANCE_NAME as ISSUANCE19_21_0_,        task0_.ISSUANCE_ID as ISSUANCE20_21_0_,        task0_.clazz_ as clazz_0_     from        ( select            ACCREDIT_ROLE_NAME,            INNER_NOTE,            TASK_CONTENT,            ACCREDIT_ORG_NAME,            AWOKE_TIME,            TASK_ID,            TASK_TYPE,            ACCREDIT_ROLE_ID,            ACCREDIT_USER_NAME,            UPDATE_BY,            TASK_STATE,            UPDATE_TIME,            END_TIME,            ACCREDIT_ORG_ID,            ISSUANCE_ID,            TASK_TITLE,            START_TIME,            ISSUANCE_NAME,            ARCHIVE_FLAG,            ACCREDIT_USER_ID,            1 as clazz_         from            OA_INDIVIDUAL_TASK         union        select            ACCREDIT_ROLE_NAME,            INNER_NOTE,            TASK_CONTENT,            ACCREDIT_ORG_NAME,            AWOKE_TIME,            TASK_ID,            TASK_TYPE,            ACCREDIT_ROLE_ID,            ACCREDIT_USER_NAME,            UPDATE_BY,            TASK_STATE,            UPDATE_TIME,            END_TIME,            ACCREDIT_ORG_ID,            ISSUANCE_ID,            TASK_TITLE,            START_TIME,            ISSUANCE_NAME,            ARCHIVE_FLAG,            ACCREDIT_USER_ID,            2 as clazz_         from            OA_PERIOD_TASK         union        select            ACCREDIT_ROLE_NAME,            INNER_NOTE,            TASK_CONTENT,            ACCREDIT_ORG_NAME,            AWOKE_TIME,            TASK_ID,            TASK_TYPE,            ACCREDIT_ROLE_ID,            ACCREDIT_USER_NAME,            UPDATE_BY,            TASK_STATE,            UPDATE_TIME,            END_TIME,            ACCREDIT_ORG_ID,            ISSUANCE_ID,            TASK_TITLE,            START_TIME,            ISSUANCE_NAME,            ARCHIVE_FLAG,            ACCREDIT_USER_ID,            3 as clazz_         from            OA_WORK_TASK     ) task0_ where    task0_.TASK_ID=?

热点排行