2012-08-30 65 views
0

我已經在java中創建了一個聊天應用程序。我作爲Eclipse RCP製作的前端。早些時候,我創建了一個視圖 ,它顯示有多少用戶登錄。現在我創建了另一個視圖,它是另一個插件項目 ,我想在該視圖中執行不同的活動。那麼,如果我在我的 聊天應用程序中創建了一個會話概念,那麼密鑰將是用戶名,值將是套接字。這是一個很好的接近? 因爲我想獲取新創建的對象中的套接字對象。我不想創建新的套接字對象。關於存儲插座的java插座提示

回答

0

有沒有其他的選擇?如果你需要兩個視圖中的套接字,那麼你將不得不將它們放在一箇中心位置,你需要給它們一個可以傳遞給視圖的密鑰。所以這個方法對我來說聽起來很合理

但也許最好將套接字包裝在實現您的視圖需要的方法的幫助類中。這樣,您可以將所有常用代碼保存在一個地方。

更重要的是:如果您需要更改聊天協議,您現在可以在助手類中完成,並且視圖不必更改。

爲此,請將您的管理器變成OSGi服務,並讓Eclipse將它注入您的視圖。見Build lightweight OSGi applications with Eclipse

+0

我一直在一箇中央的地方。我使用了一個用於與服務器通信的客戶端通信管理器。所以現在在視圖中我也應該創建通信管理器以便與服務器進行通信。所以它創建了我不想要的不同套接字對象。那就是問題所在。將來如果我想提出另一種觀點,這些問題將再次發生。如何使它成爲中心位置並確保一個客戶端只有一個套接字? – user414967

+0

將視圖的通信管理器移動到新的插件中,以便兩個視圖都可以使用它們。 –

+0

但是在這兩個視圖中,它會爲一個客戶端創建兩次以上嗎?那就是問題所在。我計劃使用,當用戶登錄時,我得到一個套接字對象並存儲到一個散列映射中,作爲登錄的用戶名和值將是套接字。所以,當我想要從地圖上獲得的特定套接字對象時。這可以嗎? – user414967