有没有办法在客户端和服务器上以不同的方式实现相同的类?
为了避免被问到“为什么要这样做?”的问题...我会详细说明。
我正在转换一个非常大的Java客户端/服务器应用程序。目前它使用一个Swing GUI客户端,并通过Spring远程调用(RPC)与服务器通信。使用GWT RPC与Spring服务不是问题,有几个优秀的示例可用,它们似乎都很有效。
一些既是客户端又是服务器端共同使用的类包含来回传递的数据。这些类还包含使用标准JRE类实现的一些行为。例如,一个类包含、解析和格式化日期和时间,包括时区、DST等,以区域设置特定的方式进行。我可以重写/重构它,但应用程序超过1000万行代码,仅这个类就有数百万个引用,所以进行重大重写是不划算的。
以此为例,GWT提供了出色的i18n支持,用于解析和格式化日期。但是,实现方式与JRE不同。
因此,我正在寻找一种聪明的方法,可以根据DateTime类是否在客户端(使用GWT和本机JS)或服务器(使用JRE)中,在其外壳中注入一个实现。有没有巧妙的方法可以做到这一点?也许使用模块文件XXXXX.gwt.xml。我正在寻找一个通用的解决方案。