2010-08-09 17 views
14

Estoy intentando implementar el patrón del agregador de eventos de una manera sencilla para aprenderlo paso a paso. Pero no encontré ningún libro o buen video tutorial sobre su implementación.
Acabo de encontrar algunos buenos artículos como este http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx y http://martinfowler.com/eaaDev/EventAggregator.html el primer artículo es demasiado grande para permitirme entender el patrón y el segundo no se completa :).
Por cierto que he creado mis clases:Intentando comprender el patrón del agregador de eventos

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

    } 
} 

y lo que quiero es crear una forma genérica para que cuando alguna vez un nuevo comentario creó el método CommentSubmited() al fuego.
Lo quiero genérico porque habrá más servicios más tarde como RateService, QuestionService, .... y cada uno tendrá un método XXXSubmited() en la clase MemberService.

Espero que hayas entendido lo que quiero aprender, pregúntame si quieres que te aclare las cosas.

Nota que miré el Generic Delegates topic y pensé que podría ayudarme en este tema, pero no pude hacerlo como yo quería.

Respuesta

6

Control hacia fuera este post en un simple agregador de eventos mediante Rx: Event Aggregator with Reactive Extensions

+0

el artículo es bueno, pero no puedo imaginarme cómo se verán el tema y el sujeto, no los escribió en su ejemplo. –

+0

En caso de que alguien se tropiece aquí, Amr publicó en la búsqueda de ISubject y alguien señaló que están en Extensiones reactivas: 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 (patrones y prácticas de Microsoft equipo) hizo una video donde se camina a través del patrón de eventos Agregador y explica la forma en que lo utilizó en su materia Aplicación WPF/MVVM. Su blog entry tiene más información sobre su proyecto y el código fuente también está disponible para su descarga. Encontré su aplicación de ejemplo y videos para ser realmente útiles mientras estaba aprendiendo.

+1

las URL de video y blog ya no funcionan –

Cuestiones relacionadas