DoubleTranslator dtDouble = new DoubleTranslator(); String sTemp = dtDouble.translate(loan.getInterestRate()); setInterestRate(sTemp); |
为了使转换代码具有最大的可重用性,并为整个站点提供一种共同的转换,syncGuiToModel() 和 syncModelToGui() 使用的都是 Object Translator 类。Object Translators 与 Translator 对象联系得如此紧密,重庆网络维护,以致于几乎可将它们看作是 Translator 对象的规则。Object Translator 类是一个简单的类,它的唯一用途就是将一种数据类型转换为格式化字符串,以及将格式化字符串转换为它的数据类型。下面是一个很简单的 Object Translator 类的代码:
public class DoubleTranslator extends ObjectTranslator public double translate(String stringToBeTranslated) throws Exception try { return dRV; |
当这个样例 Object Translator 将 double 转换为格式化的 String 时,它只需调用 Double.toString()。这个方法可实现更强大的功能,例如,可以添加几行代码,使得当格式化类似 1000.25 这样的大 double 值时,可预格式化这个值,以便显示为 1,000.25。
对于 DoubleTranslator.translate(String),须注意的重要一点是,它会发出一个可读性很好的异常,而不是标准的 Java.lang.NumberFormatException 异常。JSP 文件将此异常的消息直接显示给网站访问者,因此,让网站的普通访问者很容易地理解该方法发出的异常是非常重要的。
4. 小结
使用 Translator 模式框架的优点很多,不仅可以降低网站的成本,而且可以提高用户的满意度。由于不同组件都只执行专门的任务,因而网站的构建成本降低了。这些专门任务分配给生产小组,如 HTML 小组或 Java 程序员小组。因为 Translator 模式的 ObjectTranslators 在整个网站重用,所有全部格式化和分析都是以相同的方式进行的。因为每项任务都以相同的方式完成,所以网站访问者就能够以一致的方式查看整个网站的信息。这进一步提高了用户的满意度。