2010-03-19 32 views
0

我想構建服務器套接字模擬器,但我想在那裏實現一些設計模式。 我將描述我的案例研究,我已經簡化了這些:服務器模擬器的設計模式

我的服務器套接字將始終監聽客戶端套接字。儘管某些請求消息來自客戶端套接字,但服務器模擬器將通過套接字響應客戶端。

響應是響應碼。 '00'將描述成功處理請求消息,另一個應答代碼'00'將描述處理消息請求時出現一些錯誤。

在服務器中有一些UI,這個UI包含檢查響應參數如。 響應代碼 超時間隔

  1. 當服務器要響應客戶機消息時,從輸入參數響應形式UI採取 響應代碼
  2. 檢查超時間隔,它將創建睡眠線程和所採取的間隔從UI的超時間隔輸入。

我已經實現了該功能,但是我在一個類中創建了它。我覺得這很糟糕。 你能告訴我什麼類/接口,我必須創建重構我的代碼。

回答

1

需要重構代碼真的取決於您的服務器根據客戶端請求執行什麼任務。如果這是簡單的事情,那麼一個班級可能是最好的設計。如果它正在做一些更復雜的事情,那麼你可能希望將可以執行的各種操作轉移到各種服務類中。如果你的結果是標準的,你可以創建一個對象(可能是枚舉?)來描述它們。

這是我在自己的應用程序中採取的方法。服務器基本上只處理其本身和客戶端之間的IO。當客戶端發送消息時,服務器將其解析爲標準格式「操作」對象。然後將該對象傳遞給找到適當的「請求服務對象」的管理器對象。這個對象然後做實際的工作。完成後,它會生成一個描述對象狀態/結果的返回對象。然後由服務器採取並以適當的方式格式化,以便通過電線發送給客戶端。

希望這可以給你一些想法,什麼可能適合你的應用程序。

+0

好的提示,我也在閱讀關於響應鏈和一些其他模式 – fredcrs 2011-08-16 15:43:14

+0

我試圖做的一件事是在服務器的應用程序和客戶端都使用相同的「請求服務對象」。你做那個? – fredcrs 2011-08-16 15:50:20