Нужен совет по дизайну класса. Я только начал использовать классы 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