2011-06-21 3 views
0

クラスの設計に関するアドバイスが必要です。私はちょうどxxxServiceクラスを使い始めたので、いつどのように使用するのかは分かりません。クライアントメッセージのフォーマットと送信、xxxServiceクラスの使用

多くの(同一の)クライアントアプリケーションが、このプログラムにソケットTcpClientで接続します。いくつかの異なるクラスから異なる種類のメッセージを送信する必要があります。いくつかのメッセージを送信する必要があるときはいつでも、静的メソッドを使ってサービスクラスを呼び出すか、イベントを発生させて、そのイベントに登録してメッセージをフォーマットして送信するクラスを作成する必要があります。それはもっとカップリングを失うことでしょう、それはおそらくそれは良いアイデアですか?

これは、これらのクラスから一連のイベントを隠すことになりますが、一方で、メッセージを送信するすべてのイベントを簡単に見ることができる集中クラスになります。それは利益のように感じます。

これに関するいくつかのアドバイスをお聞きしたいと思います。私の最後の提案が理にかなっていれば、どのようなクラスを呼び出すことができますか?それはサービスクラスと見なされますか?ちょうど私により良い理解を与えるために。

乾杯!

例:

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

関連する問題