格式化和发送客户端消息,使用xxxService类

时间:2011-06-21 10:03:25

标签: .net vb.net sockets tcp

需要一些关于课堂设计的建议。我刚开始使用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

1 个答案:

答案 0 :(得分:0)

UserMessageFormatAndSendService 应该实现您的服务接口 比如说, IUserMessageService - 这样你可以测试它和/或在需要时替换功能

类本身(UserMessageFormatAndSendService)不是“服务”,它是真实服务的代理,因此您可以将其称为 UserMessageServiceAgent