模式

模式

诊断 Java 代码: 连续初始化器错误模式

您经常会看到代码不是仅仅通过调用构造函数对类进行初始化,它还通过一些紧接着的意在设置各个域的动作对类进行初始化。不幸的是,这样紧接着的动作是错误的高发地带,会带来连续初始化(run-on initialization)类型的错误。在诊断 Java 代码的这一部分中,Eric Allen 探讨了连续初始化器(Run-on Initializer)错误,讨论了为什么要避免以及如何避免它,并演示了如何将它可能带来的损失降到最低。请单击本文顶部或底部的讨论在讨论论坛与作者和其他读者交流本文的心得。

技巧: 告诉解析器在哪里可以找到模式

这篇技巧文章向您演示了如何使用 XML 模式和 JAXP 1.2 实现健壮的文档验证。文中包含了 SAX 和 DOM 解析器的示例。

诊断 Java 代码: 深度优先访问器和中断的分派

在诊断 Java 代码的这一部分中,Eric Allen 讨论了如何通过使用深度优先访问器(Visitor 模式上的一个变体)使增加代码的简洁性成为可能。他描述了它的技术,讨论了它的优点和“错误(gotchas)”,警告读者有关与其使用相关的错误模式,并在特定示例的环境中说明了深度优先访问器。 读完本文后,您将了解如何使用深度优先访问器来获得编码优势,并了解使用这一技术的缺陷。 请在论坛与作者和其他读者交流关于本文的心得。

用于数据的 XML: 重用它还是丢弃它,第 2 部分

在上一篇专栏文章中,Kevin Williams 说明了 XML 设计中的组件级重用如何减少代码复杂性以及如何缩短维护周期。在这个系列(由三篇文章组成)的第二篇文章(也就是本文)中,笔者描述了 XML 设计中可重用的组件类型,并以 XML 和 XML Schema 提供了每种组件的示例。请在与本文附带的论坛中提出您对文本的想法,以飨笔者和其他读者。

三、二、一 …… Geronimo!,第 4 部分: 模式

Web 浏览器标志着由数据库模式开头的这条路线的终点。如何创建一个好的数据库模式呢?您不仅需要有效的工具;还需要一个计划。设计数据库这件事,一半是科学,一半是艺术,那现在就开始操练您的技术吧。发掘一些有用的技巧,设计一个快速、有效地响应变化的数据库模式。

诊断 Java 代码: 设计可扩展的应用程序,第 4 部分

在本文(“诊断 Java 代码”系列文章之一)中,作者 Eric Allen 展示了 S-expression ― 由圆括号分隔的元素列表的语法表示法 ― 如何用于提供实用的、轻量型黑箱可扩展性。使用 S-expression 的优势会在一个特定示例的上下文中讨论。作者还详述了 S-expression 的局限性,并提到了什么时候它们可能不是最适合应用程序的。阅读完本文之后,您将了解何时使用 S-expression 创建黑箱可扩展性。请在论坛与作者和其他读者交流关于本文的心得。

XML 问题: 使用 RELAX NG 反击,第 3 部分

RELAX NG 紧凑语法提供了一种格式用于描述与 RELAX NG XML 语法相同的语义约束,这种格式更简洁、更易于阅读。这一部分将探讨使用这两种语法格式并在这两者之间进行相互转换的工具。

高级 XML 验证

XSLT 样式表被设计用来转换 XML 文档。当基于语法的验证不能覆盖所有需要的约束时,通过与 Java 扩展一起使用,样式表可以成为 XML Schema 的一个强有力的补充。在本文中,Peter Heneback 讲解了使用 XSLT 和 Java 扩展来验证文档的案例,并提供了实用的指导和代码示例。

诊断 Java 代码: 设计可扩展应用程序,第 3 部分

对应于我们上一篇“诊断 Java 代码”中所讨论的透明盒可扩展性,黑盒可扩展性是指,在源代码既不能查看也不能修改时,可以扩展软件系统的方法。通常通过系统配置或使用特定于应用程序的脚本语言来进行这样的扩展。在本专题中,Eric Allen 讨论了何时设计黑盒可 扩展性的系统是有意义的,并提供了如何有效地实现这一设计的一些想法。阅读了本文后,您将知道何时使用黑盒并掌握如何实现它的一些技巧。请在论坛与作者和其他读者分享您关于本文的心得。

使用 UML 设计 XML 模式

统一建模语言(Unified Modeling Language, UML)是一种业界标准,当以面向对象的方法构建软件系统时,用它来对业务概念建模。就信息和命令的传输方面而言,近来 XML 已经愈发成为实现这些系统的关键因素。XML 模式用于定义和限制被交换 XML 的本质,因此它成为了人们注意的焦点。本文讨论了 UML 在设计 XML 模式方面的用法,并为使用 UML 框架创建 XML 词汇表提供了一种实用的方法。