JAXP中的设计模式

JAXP提供DOM和SAX两种解析方式。

DOM解析方式下使用DocumentBuilder解析生成Document。
使用Abstract Factory模式管理DocumentBuilder的创建。
JAXP中的设计模式_第1张图片
图 1 创建DOM解析器

Document由一系列Node组成,以及继承于Node的Element。Node
使用了Composite模式。

JAXP中的设计模式_第2张图片
图 2 Document的结构



SAX解析方式下使用SAXParser进行解析。使用Abstract Factory
模式管理SAXParser的创建。

JAXP中的设计模式_第3张图片
图 3 创建SAX解析器

SAXParser提供了Parser和XMLReader两种解析方式入口,把真正的
解析委托给这两种实现。解析过程通过不同的handler插入外部行为,
这是Visitor模式。

JAXP中的设计模式_第4张图片
图4 SAX解析行为

Transformer提供了基于XML的转换接口,转换操作抽象为根据Source
生成Result。Transformer的创建也使用了Abstract Factory模式。

JAXP中的设计模式_第5张图片
图5 创建Transformer

Source和Result只携带基本标识信息,转换所需的其他信息都由
具体的实现来提供,这减轻了源和目标的依赖关系,但加重了
TransformerImpl的负担,TransformerImpl要取分不同的类型。

JAXP中的设计模式_第6张图片
图6 Source和Result实现

你可能感兴趣的:(设计模式,xml)