java多态:Java模式设计的多态模式和多语言支持

  作为对象创建模式多态模式中多态类可有多个例子;而且多态类必须自己创建、管理自己例子并向外界提供自己例子读者在阅读本文时候可以参考阅读笔者Java和模式书(刚由电子工业出版社出版)中相关章节

  引言 个真实项目

  这是个真实、面向全球消费者华尔街金融网站WebSite项目部份按照项目计划书这个网站WebSite系统是要由数据库驱动并且要支持十 9种区别语言;而且在将来支持更多语言消费者在登录到系统上时可以选择自己所需要语言系统则根据用户选择将网站WebSite静态文字和动态文字全部转换为用户所选择语言

  经过讨论设计师们同意对静态文字和动态文字采取区别解决方案:

  把所有网页交给翻译公司对上面静态文字进行翻译 而网页上面动态内容则需要解决

  在进行了研究后设计师们发现他们需要解决动态文字“翻译”问题实际上是将数据库中些静态或者半静态数据进行“翻译”下面就是个典型数据表:

货币代码 货币名称 货币尾数
USD America (United States of America), Dollars 2
CNY China, Yuan Renminbi 2
EUR France, Euro 2
JPY Japan, Yen 0

  代码清单1、为英文用户准备货币列表

  货币代码永远是上面所看到英文代码但是货币名称应当根据用户所选择语言区别而区别比如对中文读者就应当翻译成为下面表:

货币代码 货币名称 货币尾数
USD 美国 (美利坚合众国), 美元 2
CNY 中国人民币元 2
EUR 法国, 欧元 2
JPY 日本, 日元 0

  代码清单2、为中文用户准备货币列表

  这样表会在网页上作为下拉菜单出现用户看到是货币名称而系统内部使用是货币代码

  国际化解决方案

  这样问题就是国际化问题所谓国际化就是Internationalization简称作i18n(请参见本章最后问答题)

  设计师所采取实际方案是分层方案也就是MVC模式MVC模式将系统分为 3个层次也就是模型(Model)、视图(View)、控制器(Control) 3个部份国际化是视图部份问题因此应当在视图部份得到解决

      .out.prln(amountOut + "  "
      + currentLocale.toString);
  }
   public void (String args)
  {
    displayPercent( Double(4567.89),
      Locale("en", "US"));
    displayPercent( Double(4567.89),
      Locale("de", "DE"));
    displayPercent( Double(4567.89),
      Locale("fr", "FR"));
  }
}代码清单13、Resource文件res_zh_CH.properties内容

  在运行时,回打印出下面结果:

  1,234,567.89 en_US  

  1.234.567,89 de_DE

  1 234 567,89 fr_FR

  代码清单14、Resource文件res_zh_CH.properties内容

  (本章问答题第 2、 3、 4题解答参考了[GREEN]相关例子在这里我作了些改动)

Tags:  java下怎么实现多态 java什么是多态 java多态性 java多态

延伸阅读

最新评论

发表评论