2012-06-21 58 views
1

我正在開發一個變得足夠大的Java GWT-GAE項目,並且我正面臨一些我以前沒有LOC的問題。爲什麼不爲所有的RPC提供一個ServiceImpl?

我有ServiceImpl類中的幾個方法,我需要從其他ServiceImpl類和RPC直接調用以及。我認爲最好避免像Service s = new ServiceImpl()這樣的聲明,所以我想將方法​​體移入適當的服務器端類中,並讓ServiceImpl類中的方法調用它們。這是否是正確的解決方案,還是需要遵循特定的模式? 如果是這樣,用一個包裝所有RPC方法的ServiceImpl不是更好嗎? 客戶端變得有點慢,我認爲這是因爲我有幾個這樣的聲明:public static final * ServiceAsync * Service = GWT.create(* Service.class);

我希望我已經清楚。 在此先感謝。

安東尼

+0

聽起來像你有正確的想法。將您想調用的方法直接移出到單獨的類。你不應該自己創建ServiceImpl對象。 – awmross

+0

App Engine!= GWT。 –

回答

1

對於服務器端實現,可以考慮使用GWT-SL (Server Library)它允許你GWT與Spring集成。你的服務實現類變成簡單的Pojos,你不用擔心創建它們,只是讓Spring擔心它!

對於客戶端創建服務的情況下,使用此模式(*服務接口內),以確保您一次創建服務爲單身:

/** 
* Utility class for simplifying access to the instance of async service. 
*/ 
public static class Util { 
    private static UserServiceAsync instance; 
    public static UserServiceAsync getInstance(){ 
     if (instance == null) { 
      instance = GWT.create(UserService.class); 
     } 
     return instance; 
    } 
} 

要建立在客戶端的服務:

private UserServiceAsync userService = UserService.Util.getInstance(); 
相關問題