2010-08-09 13 views
14

Ich versuche, das Ereignis Aggregator-Muster auf einfache Weise zu implementieren, um es Schritt für Schritt zu lernen. Aber ich habe kein Buch oder ein nettes Video-Tutorial gefunden, das über die Implementierung spricht.
Ich habe gerade ein paar gute Artikel wie diese gefunden http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx und http://martinfowler.com/eaaDev/EventAggregator.html der erste Artikel ist zu groß, um mich das Muster zu verstehen und die zweite ist nicht abgeschlossen :).
Durch die Art, wie ich meine Klassen erstellt:Versucht, das Ereignis Aggregator Muster zu verstehen

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() 
    { 

    } 
} 

Und was ich will, ist eine generische Art und Weise zu schaffen, so dass, wann immer Sie einen neuen Beitrag der CommentSubmited() Methode Fire erstellt.
Ich möchte es generisch, weil es später mehr Dienste wie RateService, QuestionService, .... geben wird und jeder eine XXXSubmited()-Methode in der MemberService-Klasse haben wird.

Ich hoffe, Sie verstanden, was ich lernen will, fragen Sie mich, wenn Sie wollen, dass ich die Dinge klarer mache.

Hinweis Ich habe die Generic Delegates topic überprüft und dachte, es könnte mir in dieser Ausgabe helfen, aber konnte es nicht so machen, wie ich es wollte.

Antwort

6

Schauen Sie sich diesen Beitrag auf einem einfachen Ereignis-Aggregator mit Rx: Event Aggregator with Reactive Extensions

+0

der Artikel ist nett, aber ich kann mir nicht vorstellen, wie das ISubject und Subject aussehen wird, er schrieb sie nicht in seinem Beispiel. –

+0

Für den Fall, dass jemand hier herein stolpert, hat Amr auf der Suche nach ISubject gepostet und jemand hat darauf hingewiesen, dass sie in Reactive Extensions sind: http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- in-diesem-Beispiel-und-die-Probe-Verwendung-t – JohnMetta

6

Karl Shifflett (Microsoft-Muster und Praktiken Team) einen video gemacht, wo er das Ereignis Aggregator Muster geht durch und erklärt, wie er es in seiner Stuff verwendet WPF/MVVM-Anwendung. Sein blog entry hat mehr über sein Projekt und der Quellcode steht ebenfalls zum Download bereit. Ich fand seine Beispielanwendung und seine Videos als sehr hilfreich, als ich gerade lernte.

+1

die Video-und Blog-URLs funktionieren nicht mehr –

Verwandte Themen