2010-08-09 4 views
14

단계별로 간단하게 이벤트 수집기 패턴을 구현하려고합니다. 그러나 나는 그것의 구현에 대해 이야기하는 책이나 멋진 비디오 튜토리얼을 찾지 못했습니다.
방금 ​​http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspxhttp://martinfowler.com/eaaDev/EventAggregator.html과 같은 좋은 기사를 발견했습니다. 첫 번째 기사가 너무 커서 패턴을 이해할 수 없으며 두 번째 기사는 완료되지 않았습니다. :) 는 I 내 클래스를 생성 그런데
: 새로운 댓글이 만들 때 이제까지 CommentSubmited() 방법은 소방 있도록이벤트 수집기 패턴을 이해하려고 시도합니다.

public class Member 
{ 
    public int ID { get; set; } 

    public string UserName { get; set; } 
} 

public class MemberService 
{ 
    public void CommentSubmited() 
    { 
     // increase member score and do some other logic. 
    } 
} 

public class Comment 
{ 
    public int ID { get; set; } 

    public string CommentBody { get; set; } 

    public Member ByMember { get; set; } 
} 

public class CommentService 
{ 
    public void SubmitNewComment(Member member, string commentBody, EventAggregator eventAggregator) 
    { 
     Comment comment = new Comment(); 
     comment.ByMember = member; 
     comment.CommentBody = commentBody; 

     db.SaveComment(comment); // save comment to the db 

     //eventAggregator.GetEvent<CommentSubmited>.Fire(); 
    } 
} 

public class EventAggregator 
{ 
    public void RegisterEvent() 
    { 

    } 

    public void RemoveEvent() 
    { 

    } 
} 

그리고 내가 원하는은 일반적인 방법을 만드는 것입니다.
RateService, QuestionService 등과 같이 나중에 더 많은 서비스가있을 것이므로 generic을 원합니다. 각 서비스에는 MemberService 클래스에 XXXSubmited() 메서드가 있습니다.

당신이 내가 배우고 싶은 것을 이해했으면 좋겠 으면, 나에게 좀 더 명확하게 해달라고 부탁하십시오.

참고 Generic Delegates topic을 확인하고이 문제에 도움이 될 수 있다고 생각했지만 원하는대로 만들 수는 없습니다.

답변

6

체크 아웃 수신을 사용하여 간단한 이벤트 애그리 게이터 (aggregator)에이 게시물 : Event Aggregator with Reactive Extensions

+0

이 기사는 훌륭하지만 ISubject와 Subject가 어떻게 생겼는지 상상할 수 없다. 그는 자신의 예제에서 쓰지 않았다. –

+0

누군가가 여기 들어간 경우, Amr이 ISubject를 찾는 것에 게시했고 누군가 Reactive Extensions에 있다고 지적했습니다. http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- 이 샘플 및 샘플을 사용하는 샘플 – JohnMetta

6

칼 Shifflett (마이크로 소프트 패턴 및 관행 팀) 그가 이벤트 그리 게이터 패턴을 통해 안내하며 그가 자신의 물건에 그것을 사용하는 방법을 설명하는 video을 만들었을 WPF/MVVM 응용 프로그램. 그의 blog entry 그의 프로젝트에 대한 자세한 내용과 소스 코드를 다운로드 할 수 있습니다. 그의 예제 응용 프로그램과 비디오가 내가 배우는 동안 정말 도움이된다는 것을 알았습니다.

+1

비디오 및 블로그 URL이 더 이상 작동하지 않습니다. –