快速业务通道

在PropertyResourceBundles中引入继承 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
抛出。因为所有的父束都是通过 InheritedPropertyResourceBundle 中的两个 addRelationship() 方法之一添加的,可以在那里添加检查语句。

获取资源束引用

获取对资源束的引用的通常方法 ― 通过 ResourceBundle.getBundle() 方法 ― 不能在这种方法中使用,因为这些静态的方法是硬编码以返回一个特定的类型。换句话说,没有办法嵌入这种机制从而令人满意地返回一个新 InheritedPropertyResourceBundle 类的实例。

要获取对 InheritedPropertyResourceBundle 的一个引用,客户机必须通过 InheritedBundleManager 接口。因此,您可能需要改变现有应用程序中的一些代码。

意外的类继承

InheritedPropertyResourceBundle 类的实现继承 java.util.ResourceBundle 而不是 java.util.PropertyResourceBundle 。

为什么? PropertyResourceBundle 的创建是与 ResourceBundle.getBundle() 方法紧密结合在一起的。如果实现反而继承了 PropertyResourceBundle , ResourceBundle.getBundle() 中的大量现有逻辑将需要被管理器类重复。这就是为什么必须更改一些代码的另一个原因。

如果客户机代码需要 java.util.ResourceBundle 类型,这种解决方案不需要修改就可以很好地工作。另一方面,如果客户机代码需要 java.util.PropertyResourceBundle ,代码就需要修改了。

结论

继承方法有助于减轻与国际化开发工作有关的一些麻烦:

我们可以保留与资源束相关的当前功能,同时添加一些继承语义。我们的方法允许编写单独的资源束来配合指定的应用程序,同时还允许用户重用其它资源束来尽量避免资源重复。

由于在继承层次结构的较高级别上对资源所做的更改会在较低的级别中反映出来,维护工作减轻了。

最后,我们最大限度地减少了对源代码的更改,同时完全消除了修改现有资源束的需要。要将现有的资源束转换成“继承的”版本,只需在客户机代码中简单地添加一个关系文件,或定义一个父束。

使用这里描述的方法开发完全国际化的 Java 应用程序可以在很大程度上简化您的设计和实现工作,同时使重用现有的束更加容易。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号