欢迎来到天天文库
浏览记录
ID:34138049
大小:221.47 KB
页数:50页
时间:2019-03-03
《java数据模型设计探讨和交流》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java数据模型设计的探讨Robbin(fankai@gmail.com)http://www.javaeye.com内容提示§软件系统中的数据模型概述§Java系统中各种数据模型介绍§领域模型的分类以及分析§领域模型与AJAX数据模型为什么这么重要§软件本质上就是“数据”的输入、输出和处理,如果说软件是人的身体,数据就是人体内流动的血液§合理的数据模型是软件设计和开发成功的关键应用软件的体系结构DirectHTTPHTMLTagJavaObjectTablerecordBrowserJavaSystemDataBaseAJAX
2、JavaScriptJavaObjectObject数据的显示数据的处理数据的存储各个软件中的不同数据模型§浏览器里面的数据模型¢HTMLTag¢JavaScriptObject/Array/…§Java系统中的数据模型¢HashMap---由DataSet提供¢JavaBean---由SQLMap提供¢DomainObject---由O/RMap提供§数据库的数据模型¢Tablerecord数据模型的转换方式§JavaObjectÅÆHTMLTag¢ActionForm¢OGNL(最直接的转换方式)¢JSTLEL(只有单向转换
3、)§JavaObjectÅÆJavaScriptObject¢AJAX分布式调用框架(DWR,Bufflo)§JavaObjectÅÆTablerecord¢O/RMap¢SQLMap¢DataSetJava中采用何种数据模型的依据§浏览器端的数据模型和数据库的数据模型是给定的,我们需要根据Java系统的外部数据模型,以及转换方式的不同来调整Java系统中的数据模型(外在限制)§在现有的技术框架前提下,尽量以面向对象的方式来设计Java系统中的数据模型(内在限制)Java系统中的数据模型§DTO(数据传输对象)¢ActionFo
4、rm---用于和HTMLTag匹配的数据表示方式,常见于Struts,SpringWebMVC¢DomainModelDTO---用于和分布式调用客户端(例如JavaScriptObject)数据模型匹配§HashMap§JavaBean§DomainModelTableRecordEmployeeNameAgeGenderDepartment_id张三20男1李四24男2DepartmentIdname1开发部2财务部HashMapMap1.put(“name”,“张三”);Map1.put(“gender”,”男”);Map
5、1.put(“age”,20);Map1.put(“department_id”,1);HashMapNameAgeGenderDepartment_id张三20男1李四24男2HashMap优点和缺点§优点¢数据结构可以动态调整,带来了特定需求情况下的最大编程灵活性¢对于熟悉关系数据库的人来说,容易理解和掌握(相当于在内存中离线方式的数据库)¢和某些工具配合,可以达到很高的开发效率(MicrosoftdotnetDataSet)§缺点¢严重违背OO原则,不利于面向对象设计的实现¢缺少强类型检查,程序非常容易出错¢缺少强类型检查
6、,导致很多外部框架无法对其进行增强¢太多的隐式契约,代码可读性和可维护性太差,非常容易出错¢只能适用简单的关系模型,复杂的模型条件下,程序空前混乱HashMap的应用场合§和Web控件绑定的DataSet§JDBC取出的结果集§Hibernate中的动态对象映射§复杂报表的统计运算JavaBean方式的SQLMapEmployee.setName(“张三”);Employee.setAge(20);Employee.setGender(“男”);Employee.setDepartment(1);SQLMapJavaBeanNa
7、meAgeGenderDepartment_id张三20男1李四24男2JavaBeanJavaBean方式的优点和缺点§优点¢带有强类型检查¢和数据库字段一一对应,可以通过数据库Schema自动生成,和数据对应关系简单¢对于熟悉数据库的人来说,易学易用,非常直观§缺点¢违背OO原则,不利于面向对象设计的实现¢持久化方式不透明,需要手工控制来维护关联关系DomainModelEmployeeDepartmentpublicclassEmployee{privateDepartmentdepartment;}publicclass
8、Department{privateListemployees=newArrayList;}DomainModel优缺点§优点¢符合OO原则,有利于面向对象设计的实现¢可以利用面向对象的继承、多态、组合、关联等对象表示方式
此文档下载收益归作者所有