2010-08-09 7 views
14

J'essaie de mettre en œuvre le modèle d'agrégateur d'événements de manière simple pour l'apprendre étape par étape. Mais je n'ai trouvé aucun livre ou didacticiel vidéo parlant de son implémentation.
Je viens de trouver quelques bons articles tels que ce http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx et http://martinfowler.com/eaaDev/EventAggregator.html le premier article est trop grand pour me permettre de comprendre le motif et le second n'est pas terminé :).
Par la façon dont je crée mes classes:Essayer de comprendre le modèle d'agrégateur d'événements

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

    } 
} 

Et ce que je veux est de créer une manière générique de sorte que lorsque jamais un nouveau commentaire créé la méthode CommentSubmited() au feu.
Je le veux générique car il y aura plus de services plus tard, comme RateService, QuestionService, .... et chacun aura une méthode XXXSubmited() dans la classe MemberService.

J'espère que vous avez compris ce que je veux apprendre, demandez-moi si vous voulez que je clarifie les choses.

Remarque J'ai vérifié le Generic Delegates topic et pensé qu'il peut me aider dans cette question, mais n'a pas pu le faire comme je voulais.

Répondre

6

Vérifiez ce post sur un aggrégateur événement simple en utilisant Rx: Event Aggregator with Reactive Extensions

+0

l'article est sympa, mais je ne peux pas imaginer à quoi ressemblera l'ISubject et le sujet, il ne les a pas écrits dans son exemple. –

+0

Dans le cas où quelqu'un trébuche ici, Amr posté sur trouver ISubject et quelqu'un a fait remarquer qu'ils sont dans Reactive Extensions: http://stackoverflow.com/questions/3439419/how-isubject-and-subject-will-look-like- Dans-cet-échantillon-et-sont-le-sample-using-t – JohnMetta

6

Karl Shifflett (équipe de modèles Microsoft et pratiques) a fait une video où il se promène à travers le motif Aggregator événement et explique comment il a utilisé dans ses affaires Application WPF/MVVM. Son blog entry a plus sur son projet et le code source est également disponible en téléchargement. J'ai trouvé son exemple d'application et de vidéos très utiles pendant mon apprentissage.

+1

les URL de vidéo et de blog ne fonctionnent plus –