Mam klasy ChatManager
, który ma klasy ChatServer
i ChatClient
(WCF) wewnątrz nich.Bubbling up zdarzeń, które mają być subskrybowane
Chcę mojego kontrolera który instancję ChatManager
aby móc zapisać się na UserConnected
, UserDisconnected
i MessageReceived
wydarzeń, które są na ChatClient
.
Jaki jest najbardziej elegancki i logiczny sposób na zrobienie tego? Czy jest głupio dla mnie zdefiniowanie zdarzeń w takim stanie, jak ja, a następnie zdefiniowanie na nowo wydarzeń w ChatManager
wyłącznie po to, aby przekazać zdarzenia do kontrolera, bez konieczności radzenia sobie z nim lub bez wiedzy o tym, co się dzieje z ChatClient
? ChatManager
zasubskrybuje zdarzenia z ChatClient
, a następnie odpali swoje własne zdarzenia, które będą nasłuchiwać.
Wiem, że WPF ma pojęcie bulgotania zdarzeń, ale nie wiem, czy to jest dla tego typu scenariusza, ponieważ nic nie jest częścią interfejsu użytkownika.
Steve, myślę, że możesz mieć rację co do uzasadnienia istnienia obu z nich. Pierwotnie miałem cały kod serwera i cały kod klienta w samej klasie menedżera. Niedawno refaktoryzowałem to wszystko na dwie oddzielne klasy, a menedżer jest jedynie środkiem do uruchomienia serwera i dołączenia do serwerów poprzez utworzenie instancji serwera i klienta. Myślę, że jest to najlepszy ruch, aby pozbyć się teraz "ChatManager" i mieć kontroler, który to wszystko robi. Chociaż zastanawiam się, czy to spowoduje, że kontroler będzie zbyt rozdęty. Ale myślę, że logicznie leży w jej obowiązkach. – Cowman
+1 uzgodniony. Za każdym razem, gdy to się dzieje, dobrze jest to zakwestionować. – nycynik