Попытка понять шаблон агрегатора события

Я пытаюсь реализовать шаблон агрегатора события простым способом изучить это шаг за шагом. Но я не нашел книги или хорошего видео учебного руководства, говорящего о, это - реализация.
Я просто нашел некоторые хорошие статьи, такие как этот http://weblogs.asp.net/rashid/archive/2009/03/05/use-event-aggregator-to-make-your-application-more-extensible.aspx и http://martinfowler.com/eaaDev/EventAggregator.html, первая статья является слишком большой, чтобы позволить мне понять шаблон, и второй не завершается :).
По тому, как я создал свои классы:

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.Fire();
    }
}

public class EventAggregator
{
    public void RegisterEvent()
    {

    }

    public void RemoveEvent()
    {

    }
}

И то, что я хочу, должно создать универсальный путь так, чтобы когда когда-либо новый комментарий, созданный CommentSubmited() метод для Увольнения.
Я хочу это универсальный, потому что будет больше служб позже, таких как RateService, QuestionService.... и у каждого будет a XXXSubmited() метод в классе MemberService.

Надеюсь, что Вы поняли то, что я хочу изучить, спросить меня, если Вы хотите, чтобы я сделал вещи более ясными.

Обратите внимание, что я проверил Универсальную тему Делегатов и думал, что она может помочь мне в этой проблеме, но не могла сделать его, как я хотел.

15
задан Amr Elgarhy 9 August 2010 в 01:37
поделиться