내“하나님의 대상”을 제거하기 위해 iobservable/iobserver를 활용하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/2275167

문제

현재 작업중 인 시스템에는 인터페이스 및 기본 클래스로 정의되는 많은 구성 요소가 있습니다. 시스템의 각 부분에는 시스템의 다른 부분과 상호 작용하는 특정 지점이 있습니다.

예를 들어, 데이터 준비 구성 요소는 결국 데이터 처리 부분으로 이동 해야하는 일부 데이터를 읽습니다. 통신 구성 요소는 외부로 릴레이를위한 상태에 대해 다른 구성 요소를 쿼리해야합니다.

현재, 나는 "신의 대상"또는 시스템의 다른 부분에 대한 친밀한 지식을 가진 물체를 사용하여 시스템의 이러한 부분을 함께 붙입니다. 여기에 이벤트에 등록하고 결과를 메소드에 셔틀하고 여기에 콜백 메소드를 작성하고 해당 메소드의 결과를 반환하며 특정 작업이 "알고"하기 때문에 처리를위한 다중 스레드 큐를 통해 많은 요청을 전달합니다. STA 스레드 등에서 실행하려면

편리하지만이 유형의 다른 모든 사람들이 시스템의 다른 모든 사람들이 어떻게 설계되었는지에 대해 많은 것을 알고 있습니다. 나는 이벤트 나 방법이나 콜백을 노출 시키거나이를 소비 할 수있는 인스턴스를 제공 할 수있는보다 일반적인 허브를 선호합니다.

나는 반응성 프레임 워크의 iobservable/iobserver 기능에 대해 더 많이보고 있었고 .NET 4.0으로 롤링되고 있습니다 (믿습니다).

이 패턴을 활용하여 "신의 대상"을 대체 할 수 있습니까? 어떻게해야합니까? 이 특정 목적 으로이 패턴을 사용하기위한 리소스가 있습니까?

도움이 되었습니까?

해결책

당신이 당신을 교체 할 수있는 것 같습니다 신의 대상 무엇으로 MSDN 여기에 설명합니다.

Microsoft Streaminsight 플랫폼을 사용하여 복잡한 이벤트 처리 (CEP) 응용 프로그램을 만들려면 이벤트를 정의하는 구조, 이벤트를 생성하고 소비하는 객체 및 이벤트를 처리하는 데 필요한 비즈니스 로직이 포함 된 쿼리 템플릿을 만듭니다.

우리 팀은 조만간 .NET 4.0으로 이동하지 않습니다 (불행히도). 그래서 우리는 우회했다 신의 대상 MAF/MEF가 제공하는 것과 유사한 맞춤형 프레임 워크를 구축하여 시나리오. 이것은 Microsoft가 부르는 것을 사용하여 분산 지식 기반을 만들었습니다. 어댑터. 각 어댑터는 자체 모듈, 데이터 전달, 이벤트 등에 만 책임이 있습니다. 공통점이 있습니다. 운영자 데이터 및 이벤트, 프로세스 및 각 어댑터로 다시 전달됩니다.

내 이해 IObservable & IObserver a 신의 대상 실제로는 필요하지 않을 것입니다 - 사실상 다른 부분 내에서 일어나는 일에 대한 분산 지식 기반을 만듭니다. 이 인터페이스에 대한 명백한 장점은 중간 커뮤니케이터 (즉, 어댑터)는 더 이상 필요하지 않습니다. 따라서 지식의 분포는 실제로 iObservable 파생 클래스에 있습니다. 이 모델은 본질적으로 a 화자/응답자 관계 - 중재/중재 수업 없음.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top