有沒有什麼辦法可以在客戶端和服務器上以不同的方式實現相同的類?同一類的GWT客戶端和服務器實現
爲了避免「你爲什麼想這麼做?」問題..我會詳述
我正在轉換一個非常大的Java客戶端/服務器應用程序。目前它使用Swing GUI客戶端,並通過Spring遠程處理(RPC)與服務器通信。使用GWT RPC和Spring服務不是問題,有幾個很好的例子可用,並且所有這些似乎都很好。
對客戶端和服務器都通用的幾個類包含來回傳遞的數據。這些類還包含一些通過使用標準JRE類實現的行爲。例如,一個類包含,分析和格式化日期和時間,包括時區,DST等,以特定的語言環境。我可以重寫/重構它,但是應用程序超過1000萬SLOC,導致數百萬個單獨的這個類的引用,所以重大的重寫不具有成本效益。
爲了以此爲例,GWT爲解析和格式化日期提供了出色的i18n支持。但是實現與JRE的方式不同。
所以我正在尋找一種切肉刀的方式,我可以注入一個實現到我的DateTime類的外殼,取決於它是在客戶端(使用GWT和本地JS)還是在服務器(使用JRE)。有沒有一種狡猾的方式來做到這一點?也許使用模塊文件XXXXX.gwt.xml。我在尋找一個通用的解決方案。
這不是問什麼。他有多個在客戶端和服務器上使用的類(是的,通常是共享的),但這些類包含非GWT JRE代碼,因此它們只能在服務器上運行。 – John 2011-03-18 11:24:43
製作相同的課程但實施方式不同會使我的眼睛受傷。對我來說,這將制約設計合同,程序員必須知道下面的實現是什麼。沒有一種方法可以在接口之後使用兩個不同的類來實現接口實現嗎?這就是你的問題將得到解決的方式(如果你問我)。 – Sven 2011-03-18 16:15:29
@John - 我提到它不適用於包含非GWT代碼的類。也許我對此不是很清楚。 – jjczopek 2011-03-22 23:26:25