Tôi đang cố triển khai mẫu tập hợp sự kiện theo cách đơn giản để tìm hiểu từng bước một. Nhưng tôi đã không tìm thấy bất kỳ cuốn sách hay video hướng dẫn tốt đẹp nói về nó thực hiện.
Tôi chỉ tìm thấy một số bài viết hay như: http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx và http://martinfowler.com/eaaDev/EventAggregator.html bài viết đầu tiên quá lớn để tôi hiểu mẫu và phần thứ hai chưa hoàn thành :).
Bằng cách tôi tạo ra các lớp học của tôi:Đang cố gắng hiểu mẫu kết hợp sự kiện
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()
{
}
}
Và những gì tôi muốn là tạo ra một cách chung chung để khi bao giờ bình luận mới được tạo ra phương pháp CommentSubmited()
Fire.
Tôi muốn nó chung vì sẽ có nhiều dịch vụ hơn sau đó như RateService, QuestionService, .... và mỗi dịch vụ sẽ có phương thức XXXSubmited()
trong lớp MemberService.
Hy vọng bạn hiểu những gì tôi muốn tìm hiểu, hãy hỏi tôi xem bạn có muốn tôi làm cho mọi thứ rõ ràng hơn không.
Lưu ý tôi đã kiểm tra Generic Delegates topic và nghĩ rằng nó có thể giúp tôi trong vấn đề này, nhưng không thể làm cho nó như tôi muốn.
bài viết rất hay, nhưng tôi không thể tưởng tượng được cách ISubject và Chủ đề trông như thế nào, anh ấy không viết chúng trong ví dụ của mình. –
Trong trường hợp bất cứ ai tình cờ ở đây, Amr đăng trên tìm kiếm ISubject và ai đó đã chỉ ra rằng họ đang ở trong phần mở rộng phản ứng: http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- in-this-sample-and-are-the-sample-using-t – JohnMetta