2010-08-09 45 views
14

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.aspxhttp://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.

Trả lời

6

Check-out bài này trên một aggregator sự kiện đơn giản sử dụng Rx: Event Aggregator with Reactive Extensions

+0

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. –

+0

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

6

Karl Shifflett (mô hình và thực hành Microsoft đội) đã video nơi ông đi qua mô hình tổ chức sự kiện Aggregator và giải thích cách ông sử dụng nó trong Stuff mình Ứng dụng WPF/MVVM. blog entry của ông có thêm về dự án của ông và mã nguồn có sẵn để tải xuống. Tôi thấy ứng dụng ví dụ và video của anh ấy thực sự hữu ích khi tôi đang học.

+1

URL video và blog này không hoạt động nữa –