2011-06-21 34 views
0

需要關於類設計的一些建議。我剛開始使用xxxService類,所以不確定何時以及如何使用它們。格式化和發送客戶端消息,使用xxxService類

許多(相同)客戶端應用程序使用套接字TcpClient連接到此程序。不同類型的消息需要從幾個不同的類發送。我應該使用靜態方法調用一個服務類,只要我需要發送一些消息(如下面的代碼所示);或者我應該引發一個事件,並且將一些類註冊到這些事件中,以格式化和發送消息。那會是一種更加失落的聯結,所以也許這是一個更好的主意?

這樣會隱藏來自這些類的事件序列,但另一方面,它將是一個集中的類,可以輕鬆看到所有觸發消息發送的事件。這感覺像是一種好處。

想聽聽這方面的一些建議。如果我的最後一個建議是有道理的,那麼這個類可以被調用什麼,並且它會被認爲是一個..Service類?只是爲了讓我更好的理解。

乾杯!

例子:(代碼是一個有點「粗」)

Class UserConnection 
    tcpClient As TcpClient 

    Public Sub SendMsg(msg as String) 
     ' Sending by tcpClient 
    End Sub 
End Class 

Class UserAccount 
    userData as UserData 
    conn As UserConnection 
    balance as Decimal 

    Public Sub UpdateAccount(newBalance as Decimal) 
     ' perform some logic 
     Dim history as new AccountHistory(me.Balance, ......, ....) 
     UserMessageFormatSendService(history) 
    End Sub 
End Class   

Class UserMessageFormatAndSendService() 
    Public Shared SendAccountUpdate(user as UserAccount, accountHistory as AccountHistory) 
     ' Some code formatting it into a string message 
     Dim msg = ....... 

     user.Conn.SendMsg(msg) 
End Class 

回答

0

UserMessageFormatAndSendService應該實現服務接口 說,IUserMessageService - 這種方式,您可以測試它和/或在需要時更換功能

該類本身(UserMessageFormatAndSendService)不是「服務」,它是真實服務的代理,因此您可以稱它爲UserMessageServiceAgent

相關問題