C#事件の事件聚合器
2021-05-14 14:26
标签:namespace one string tty dem color 一个 gen class 事件聚合器用于集中管理事件的订阅(Subscribe)和处理(Handle),要使用事件聚合器,首先要理解:事件(event)本质上是一个类。 传统的+=和-=不足: 1、管理很麻烦;2、不方便扩展。 所以尝试使用事件聚合器来解决这个问题。 首先,使用一个统一的接口来实现事件的统一标记: 事件,需要有对应的事件处理器(EventHandler),这里使用一个统一的接口 IEventHandler 来进行统一,IEventHandler 只包含一个处理事件的方法 Handle 事件聚合器接口 IEventAggregator 需要包含至少两个方法:订阅(Subscribe)和发布(Publish) 接下来是实现这个接口:EventAggregator 举例: 调用: C#事件の事件聚合器 标签:namespace one string tty dem color 一个 gen class 原文地址:http://www.cnblogs.com/xietianjiao/p/7521682.htmlpublic interface IEvent{ }
public interface IEventHandler
public interface IEventAggregator
{
void Subscribe
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EventAggregatorTest
{
public interface IEvent { }
public interface IEventHandlerin TEvent> where TEvent : class, IEvent
{
void Handler(TEvent @event);
}
public interface IEventAggregator
{
void Subscribe
using EventAggregatorTest;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace EventAggregatorDemo
{
class Program
{
static void Main(string[] args)
{
var eventAggregator = new EventAggregator();
eventAggregator.Subscribe(new MealDoneEventHandler("张三"));
eventAggregator.Subscribe(new MealDoneEventHandler("李四"));
eventAggregator.Subscribe(new MealDoneEventHandler("王五"));
eventAggregator.Publish(new MealDoneEvent("吃大餐"));
Console.ReadKey();
}
}
}