用 Java 字典和辞典 API 使 Java 用户可以使用您的单词参考
级别: 中级
Rakesh Midha (mrakesh@in.ibm.com)
软件工程师, IBM 软件实验室,Bangalore
2004 年 10 月
在介绍 JADT 的第 1 篇文章中,介绍了来自 alphaWorks 的一套类库,用于在 Java 应用程序中访问语言特性。接下来,Rakesh Midha 在本文中给出了 JADT 体系结构和 API 的具体说明。他还通过剖析一个驱动程序的实现示例,向您展示了如何把这个 API 的实现作为驱动程序启动。
在本系列文章的 第 1 部分 中,您学到了 JADT 的一些基础知识,JADT 提供了透明地以 Java 为中心的访问字典或非结构化单词以及它们的有关信息的方法。JADT 的主要目标是为字典提供者提供一个可以依据的标准技术,以便他们支持 Java 平台。第 1 部分从开发人员的角度介绍了 JADT。在本文中,我要给出实现的细节,重点从字典开发商的角度考虑。我会带您了解 JADT 以及 JADT 的体系结构的细节,并提供 JADT 中包含的所有类和接口的信息。
在 JADT 示例驱动程序实现的帮助下,我将讨论驱动程序必需的接口实现。之后,您将对 JADT 驱动程序和提供驱动程序的方法有了一个整体的印象。
JADT 体系结构
JADT 体系结构为任何类型的后端数据提供了基于驱动程序的访问。字典提供者实现驱动程序端接口,为字典提供一个访问点,任何使用这个字典的程序,将使用字典服务的用户端接口。结果就是,您可以方便地把 JADT 体系结构与各种开发商和第三方驱动程序集成在一起。如图 1 所示,专用的语言数据总是通过 JADT Driver 实现与 JADT 保持分离:
图 1. JADT 体系结构
JADT 开发商的角色
假如您想用 JADT 公开您的字典或辞典,那么只需提供 JADT 的实现即可。JADT 驱动程序位于开发商数据和 Java 程序员之间,答应开发商在不完全公开他们的数据和数据格式的情况下,对外提供服务。反过来。Java 程序员也不必深入某个开发商专用的数据和数据格式,就可以使用开发商的数据。
JADT 驱动程序开发商可以使用 JADT 接口,并根据它们自己的习惯实现这些接口。一旦驱动程序就绪,可以访问您的数据,那么就可以在您的站点启用它了。到这个站点的链接,可以作为 JADT 访问页面中的一个线程来使用。
JADT 用一致的方式在所有数据辞典上工作,这一点很重要,所以实现所有符合 JADT 所设标准的 JADT 接口和方法,是开发商的责任。JADT 的 JADT Javadocs 和接口定义文档非常清楚地公开了接口和方法的目标。
JADT 实现近观
JADT 定义了多组接口和类。有些接口是辅助性的,有些是可选的,这取决于您的驱动程序所要支持的功能。假如要完整地支持 JADT,那么就必须按照 Javadocs 中所定义的规范,实现所有接口。在这一节里,我将给出所有这些接口和类实现的细节。
完整的 JADT 接口和类集,如图 2 中的类图所示:
图 2. JADT 类图
下面我要介绍各种类和接口。
JADTDriverFactoryManager
JADTDriverFactory 对象的基本控制类是 com.ibm.jadt.JADTDriverFactoryManager,这个类就像用户和可用的驱动程序工厂之间的连接。可以用它取得 Driver 的实例,然后再用实例得到某个驱动程序实现的一个或多个 JADT 服务。
在 JADTDriverFactory 载入之后,由 JADTDriver 提供者负责注册 JADTDriverFactory,所以 JADT 用户还可以在任何时候,通过调用 Class.forName(Driver_factory_class);,显式地装入 JADTDriver 。
驱动程序工厂类的名称应当随 JADTDriverFactoryName 一起交给用户,用户使用这个类的静态方法 getJADTDriverFactory(String factoryName) ,就可以得到 getJADTDriverFactory。您可以调用静态 registerJADTDriverFactory (JADTDriverFactory factory) 方法来注册它。
JADT 带有下列接口,必须实现这些接口:
com.ibm.jadt. JADTDriverFactory
com.ibm.jadt.JADTDriver
JADTDriverFactory