【发布时间】:2011-07-17 23:48:11
【问题描述】:
有什么方法可以在客户端和服务器上以不同的方式实现相同的类?
为了避免“你为什么要这样做?”问题..我会详细说明
我正在转换一个非常大的 Java 客户端/服务器应用程序。目前它使用 Swing GUI 客户端并通过 Spring 远程处理 (RPC) 与服务器对话。将 GWT RPC 与 Spring 服务一起使用不是问题,有几个很好的示例可用,而且似乎都运行良好。
客户端和服务器共有的几个类包含来回传递的数据。这些类还包含一些使用标准 JRE 类实现的行为。例如,一个类以特定于区域设置的方式包含、解析和格式化日期和时间,包括时区、DST 等。我可以重写/重构它,但应用程序的 SLOC 超过 1000 万,仅导致对此类的数百万次引用,因此重大重写并不划算。
以此为例,GWT 为解析和格式化日期提供了出色的 i18n 支持。但是实现与 JRE 的实现方式不同。
所以我正在寻找一种切割方式,我可以将实现注入到我的 DateTime 类的外壳中,具体取决于它是在客户端(使用 GWT 和本机 JS)还是在服务器中(使用 JRE )。有没有巧妙的方法来做到这一点?也许使用模块文件 XXXXX.gwt.xml。我正在寻找一个通用的解决方案。
【问题讨论】: