我有一个类ChatManager,里面有一个ChatServer和一个ChatClient(WCF)类.
我希望我实例化的控制器ChatManager能够订阅UserConnected,UserDisconnected以及MessageReceived在其上的事件ChatClient.
这样做最优雅,最合乎逻辑的方法是什么?对我来说,定义事件ChatClient就像我一样愚蠢,然后重新定义事件ChatManager只是为了将事件传递给Controller,而不必处理或了解ChatClient?在ChatManager将订阅的事件ChatClient,然后火了自己的事件,该ChatController会听.
我知道WPF具有冒泡事件的概念,但我不知道这是否适用于这种情况,因为没有任何东西是用户界面的一部分.
我首先要质疑两者是否ChatManager都ChatController可以证明自己的存在是合理的。通常,每当您发现自己创建“Manager”类时,实际上没有必要,特别是如果它所做的部分工作仅包括中继消息。
控制器类可能会与 SRP 作斗争,因为它们的“职责”相当广泛。如果您想要委派某些行为的责任,则将责任留给ChatClient控制器,并使用ChatClient(通过契约接口)初始化从属控制器,以便它可以根据需要与客户端进行交互。只需确保当您开始注册事件时,在丢弃下属或客户端之前取消注册这些事件,否则您将面临托管内存泄漏。
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |