gpt4 book ai didi

同一类的 GWT 客户端和服务器实现

转载 作者:行者123 更新时间:2023-12-04 04:23:05 25 4
gpt4 key购买 nike

有没有办法在客户端和服务器上以不同的方式实现相同的类?

避免“你为什么要这样做?”问题..我会详细说明

我正在转换一个非常大的 Java 客户端/服务器应用程序。目前它使用 Swing GUI 客户端并通过 Spring 远程处理 (RPC) 与服务器对话。将 GWT RPC 与 Spring 服务一起使用不是问题,有几个很好的示例可用,而且似乎都运行良好。

客户端和服务器共有的几个类包含来回传递的数据。这些类还包含一些使用标准 JRE 类实现的行为。例如,一个类以特定于区域设置的方式包含、解析和格式化日期和时间,包括时区、DST 等。我可以重写/重构它,但应用程序的 SLOC 超过 1000 万,仅导致对此类的数百万次引用,因此重大重写不符合成本效益。

以此为例,GWT 为解析和格式化日期提供了出色的 i18n 支持。但是实现与 JRE 的实现方式不同。

因此,我正在寻找一种更有效的方式,我可以将实现注入(inject)到我的 DateTime 类的外壳中,具体取决于它是在客户端(使用 GWT 和 native JS)还是在服务器(使用 JRE)中。有没有巧妙的方法来做到这一点?也许使用模块文件 XXXXX.gwt.xml。我正在寻找一个通用的解决方案。

最佳答案

您想使用 <super-source> 用于用另一个包实现覆盖一个包实现。
这就是 GWT 用来模拟 Java 运行时类的东西,并且(除其他外)为 com.google.gwt.regexp.shared.* 的客户端和服务器提供不同的实现。类。

关于同一类的 GWT 客户端和服务器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5349428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com