- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
具有自适应能力的值的对象研究
具有自适应能力的值对象研究
摘 要 在Web应用系统中,具有自适应能力的值对象将极大提高系统的开发效率和运行效率。本文主要讲述了如何动态创建封装值对象。关键词 VO(Value Object) POSModel1 引言值对象(Value Obiect)即值的对象,简称VO。一个值对象实际上是一个可序列化的java类,它封装了客户端和服务器端所需要交换的业务数据。通过使用值对象极大地减少系统中客户端与服务器端间的网络对话,加速层之间的数据交换,从而提高系统的性能。目前的值对象多采用java的反射机制在程序的运行期间创建和维护任何类的对象(服从安全限制),而不提前对目标类进行硬编码。Java 语言的反射机制提供了一种非常通用的动态连接程序组件的方法。这种机制使得反射在创建与对象一同工作的类库中的通用方法方面非常有用。但是反射有两个缺点,一个是性能问题。在使用属性字段和方法访问的时候,反射要比直接的代码访问要慢很多。至于影响的程度,则依赖于在程序中怎样使用反射。如果要在执行应用程序的核心逻辑中使用反射,性能问题是一个严肃的问题。其次,使用反射可以使你的实际的代码内部逻辑变得模糊不清。程序员都希望在源代码中看到一个程序的逻辑以及象绕过源代码的反射所可能产生的维护问题这样的一些技术。反射代码也比相应的直接代码要复杂一些。此外编写值对象也是一项枯燥乏味的工作。针对以上的问题,本文提出了一个基于元数据描述的值对象解决方案。通过该方案生成的值对象具有良好的自描述能力和自适应能力,通过定制元数据,用户可以从乏味的值对象硬编码工作中解脱出来;同时摒弃了Java的反射机制,提高了系统的性能,使程序的逻辑更加清晰。2 通用动态值对象的设计:POSModel值对象作为一种客户端和服务器端数据交换的载体,其所容纳和传输的不外乎“属性名/属性值”对这样的数据。基于上述特点,本文设计了POSModel类,该类作为所有值对象的基类,动态封装“属性名/属性值”放入Map类型的变量,向外界提供统一的接口用于操纵业务对象的数据。其类图如图1所示:图1POSModel实现了Serializable接口,可以作为远程方法调用(Romote Method Invoke,RMI)的参数在网络上传输。由于POSModel可以容纳任何类型的“属性名/属性值”,对这样的数据,而与实体Bean无关,其所容纳的数据也可以在系统运行时根据需要动态地改变,而不象JavaBean类值对象那样由于需要封装实体Bean的全部数据而导致不必要的数据传输,故而可以用它来做为客户端和服务器端间一种通用、动态的数据交换载体,而无须再实现一个个具体的JavaBean,这就大大减少系统中的硬编码工作量:因为根本就不需要为值对象提供任何的编码实现,而且也提高了系统的可维护性。除此之外,POSModel类提供以下功能:u 对字段属性有效性的校验u 支持两种类型的数据(日期型和字符型)u 把所有数字类型的数据都当作字符型来操作u 用空字符代表nullu 为在html页面上显示数据提供了htmlEncode方法,用于过滤掉特殊字符3 建立对象关系映射按照ORM理论,类和关系数据库中的表对应,对象和表中的记录对应,对象的属性和表的字段对应。而POSModel类动态封装了对象的“属性名/属性值”对数据,为此我们设计了一个xml文件用于建立对象到关系数据库的映射,其Schema文件主要代码如下:lt;?xml version=“1.0” encoding=“utf-8”?gt;lt;xsd:schema xmlns:xsd=“/2001/XMLSchema”gt; lt;xsd:element name=“field”gt; lt;xsd:attribute name=“name” type=“xsd:string” use=“optional”/gt; lt;xsd:attribute name=“tabField” type=“xsd:string” use=“optional”/gt; lt;xsd:attribute name=“type” type=“xsd:string” use=“optional”/gt; lt;/xsd:elementgt; lt;xsd:element name=“fields”gt; lt;xsd:element maxOccurs=“unbounded” minOccurs=“1” ref=“field”/gt; lt;/xsd:elementgt; lt;xsd:element name=“model”gt; lt;xsd:element ref=“table”/gt; lt;xsd:element ref=“fields”/gt;lt;xsd:element ref=“re
您可能关注的文档
最近下载
- 22G101 三维彩色立体图集.docx VIP
- 2025年部编版四年级下册道德与法治全册教案教学设计[WORD最新带板书带目录.pdf VIP
- 8D报告案例模板.ppt VIP
- 工程结算审核实务:重点难点解析及解决方案.docx VIP
- 重大活动应急预案.docx VIP
- DB34T4021-2021《城市生命线工程安全运行监测技术标准》.docx VIP
- 宁波市2023年小学生科普知识学习体验活动-高段组(参考答案) .pdf VIP
- 拼装式施工灯架制作和安装工艺.pdf VIP
- 青岛宏丰聚三氟氯乙烯及氟碳乳液合成工艺问世.pdf VIP
- 江苏省南通市2024-2025学年八年级下学期期末物理试题.pdf VIP
文档评论(0)