단계별로 간단하게 이벤트 수집기 패턴을 구현하려고합니다. 그러나 나는 그것의 구현에 대해 이야기하는 책이나 멋진 비디오 튜토리얼을 찾지 못했습니다.
방금 http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx과 http://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을 확인하고이 문제에 도움이 될 수 있다고 생각했지만 원하는대로 만들 수는 없습니다.
이 기사는 훌륭하지만 ISubject와 Subject가 어떻게 생겼는지 상상할 수 없다. 그는 자신의 예제에서 쓰지 않았다. –
누군가가 여기 들어간 경우, Amr이 ISubject를 찾는 것에 게시했고 누군가 Reactive Extensions에 있다고 지적했습니다. http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- 이 샘플 및 샘플을 사용하는 샘플 – JohnMetta