XML 和 Java 技术: 数据绑定的多种用法
2010-04-02 00:00:00 来源:WEB开发网如果 XML 不是非常易读的格式,或者并非如希望那样以业务目的分开,或者其格式会经常变化,则第一种方法将会是很好的选择。该方法需要更多一点的 XML 知识以及使用 API(更多地以技术为中心而不是以业务为中心)的能力。
另一方面,如果 XML 是按照业务需求组织的,并且 XML 结构很少变化,则可以一次性的创建类和对象,然后在运行时将数据作为业务数据使用,完全不用担心数据底层的 XML。
如何使用数据?
开发人员常常会疏于考虑:如何根据选择的数据绑定解决方案使用 XML 文档中的数据。但是,这可能是正确决定数据绑定方法的一个最重要的因素。
将对象用于持久数据
将 XML 数据转换成对象实例的数据绑定方法只适用于那些要多次使用的数据。获取 XML 文档中的数据并将其转换为多个对象中的成员变量数据涉及大量的处理工作。要从这个方法中获利,需要多次使用到该数据。
仔细查看一条数据的访问次数,同时也考虑一下使用了多少数据。比如说,假设 XML 中为每个人存储了 20 条数据,但应用程序中只访问了其中的一条,使用大量的资源转换数据却只是为了访问其中的一条。不论怎样计算这都不可能获利。
使用对象在其它组件中隐藏 XML
隐藏存储介质是使用基于对象的方法的另一个重要原因。因此应用程序中可能有一个组件对 Person 对象执行一些特殊的处理。可以从数据库或者 XML 文档或者属性文件中读取 people 数据,然后把这些数据转换成 Person 对象,再把这些对象传递给处理组件。
即使只是暂时使用数据,这也是用对象表示数据的一种很合理的情形。在本例中,如果将数据表示为对象格式,并且应用程序的其它部分已了解如何使用该格式,则可以获益。同时还避免了组件的数据转化和数据加载,而您只希望使用某种类型的对象来实现相应操作,这很好地实现了应用程序中的关系隔离,而它正是应该遵循的一条重要的设计原则(应用程序中的每个组件只实现一个功能,并实现好该功能)。
短期,只使用一次的数据
如果没有要重用的数据,而且不以对象的形式将数据传递给应用程序中的另一个组件,则可以考虑使用 DOM 或者 JDOM 之类的 API。这比将 XML 转换成非文档格式所使用的资源少,从而可以全面受益。此方法比以高昂的代价将数据转化为特定于业务的对象、以后却只使用该数据一二次要好得多。
尽管本文的主题是数据绑定,但有一点值得提到的是在这些情况下甚至可以考虑使用 SAX(Simple API for XML)这样的 API,它完全不提供对象模型(以文档或对象格式)。使用它处理 XML 只使用很少的内存和时间,如果确实只需要使用一条数据一到两次,则此方法可让您获益巨大。使用像 SAX 这样的 API 需要更多的了解 XML 的知识,但了解这些知识是非常值得的。
结束语
这篇关于XML 和 Java 技术 的系列文章不是提供问题的解决方案,而是希望能让读者自己思考如何使用一种特殊的技术和 API —— 本例讨论了 XML 和数据绑定。您可能会同意其中的某些观点,而不同意另外一些观点。但是应该明确的是,一定要更深入地思考如何在自己的应用程序中使用 XML。
本文旨在为读者提供一个起点。欢迎访问 XML 和 Java 技术论坛,在那里将以更加互动的形式继续这些讨论。如何使用数据绑定,您最喜欢使用哪一种 API,是否想出了数据绑定技术在应用程序中的一些创造性用法?请与我分享这些信息……我期待在网上与您进行交流。
更多精彩
赞助商链接