나는 ChatServer
및 ChatClient
(WCF) 클래스를 내부에 가지고있는 클래스 ChatManager
을 가지고 있습니다.구독 할 이벤트 버블
은 내가 ChatClient
에있는 UserConnected
, UserDisconnected
및 MessageReceived
이벤트를 구독 할 수 있도록 ChatManager
를 인스턴스화 내 컨트롤러를 원한다.
이 작업을 수행하는 가장 우아하고 논리적 인 방법은 무엇입니까? 내가 가지고있는 ChatClient
의 이벤트를 정의하는 것은 어리석은 짓이며 ChatManager
이벤트를 재정의해야 이벤트를 컨트롤러에 전달하고 ChatClient
에 대해 알지 못하는 사이에 이벤트를 다시 정의 할 수 있습니까? ChatManager
은 ChatClient
의 이벤트를 구독 한 다음 ChatController
이 듣고있는 자체 이벤트를 시작합니다.
WPF는 이벤트의 버블 링 개념을 가지고 있지만 이것이 사용자 인터페이스의 일부가 아니기 때문에 이러한 유형의 시나리오인지는 알 수 없습니다.
스티브, 두 사람의 존재에 대한 정당성에 대해 당신이 맞다고 생각합니다. 원래 나는 모든 서버 코드와 모든 클라이언트 코드를 관리자 클래스 자체에 가지고있었습니다. 그런 다음 저는 최근에이 두 클래스를 모두 두 개의 클래스로 리팩터링했습니다. 관리자는 서버를 시작하고 서버와 클라이언트를 인스턴스화하여 서버에 가입하는 수단 일뿐입니다. 지금은 'ChatManager'를 제거하고 컨트롤러가 그 모든 작업을 수행하는 것이 가장 좋습니다. 컨트롤러가 너무 부풀어 오르는 지 궁금합니다. 그러나 논리적으로 그 책임에 해당하는 것 같습니다. – Cowman
+1 동의 함. 언제든지이 문제가 발생하면 문제를 제기하는 것이 좋습니다. – nycynik