在PropertyResourceBundles中引入继承 - 编程入门网
属性在组件中使用,同时从另一个束中继承其它属性。一个属性只需定义一次。其它组件可以简单地继承这个属性。
另外一种选择是,一个组件可以决定继承的属性不适合自己使用,然后重新定义该属性 ― 这种概念类似于面向对象编程中的覆盖方法或属性。 增加继承还减少了维护工作,因为每个属性都被定义在层次结构中明确的位置上。如图 1 所示,被更改的属性会影响从发生更改的束继承而来的所有的束。 图 1. 资源束继承层次结构的示例 设计目的 为实现我们的策略,首先我们需要设计继承的机制。在设计机制时要牢记,我们要设法尽量减少现有代码和现有资源束的必需的更改。 为了使现有代码使用继承束,我们需要合并一些最小限度的更改,包括从 PropertyResourceBundle 到新的对象类型的转换并使用一个新的 管理器类(稍后我会讨论这个类)。 现有的资源束需要重新定义吗?不。这种方法的一个显著的副作用就是,现有的资源束可以变成整个继承结构的基础,而无须对这些资源束进行改变。现有的资源束可以按原样使用。 另一个设计目的是为了能够在代码 内和代码 外(在将列出一个给定束的关系的另一个文件中)都能定义束关系层次结构。这种方法为您提供了在代码外定义关系的机会,这样会使修改和维护更加容易。也可以在代码内改变层次结构,这样就可以在运行时为开发人员提供精细的控制。 实现设计 新实现的主要功能是提供描述束之间的关系的继承机制。 与 Java 语言的 类继承不同,每个新束都被允许从多个父束中逻辑地继承属性。 新类:InheritedPropertyResourceBundle 为实现这些思想,我们将创建一个继承 java.util.ResourceBundle 类的新类。新类将保持对 PropertyResourceBundle 的单独引用,还有对任意数量的父束(被 InheritedPropertyResourceBundle 的这个实例逻辑地继承的束 ― 请参阅清单 1)的可选的引用。 在PropertyResourceBundles中引入继承(3)时间:2011-02-06 Eric A. Olson清单 1. InheritedPropertyResourceBundle 类的开头
注意:请参阅 参考资料下载本文中使用的完整的源代码。 如清单 2 所示,当 InheritedPropertyResourceBundle 按照给定的键查询时,将首先检查提供支持的 PropertyResourceBundle 来查找资源。 清单 2. 用给定的键检查 PropertyResourceBundle
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |