最近一直在做一个新系统,其中小部分任务需要用到事件监听触发的过程。自己先练练手。
首先是,Listener的代码,监听者监听到事件后需要作出的反应。
namespace ConsoleApplication1.ObserverDesignModelTest
{
public class WIPListener
{
public void StartWork(EventData data)
{
Console.WriteLine("WIP处理开工事件...");
}
public void ReportWork(EventData data)
{
Console.WriteLine("WIP处理报工事件...");
}
public void FinalInspect(EventData data)
{
Console.WriteLine("WIP处理终检事件...");
}
}
}
再来一个事件数据类,在我们的系统里,这种类就是数据库数据一个映射。我们可以把它理解为一条数据,一旦生成这个类对象即一条数据,即触发上面的方法。
namespace ConsoleApplication1.ObserverDesignModelTest
{
public class EventData
{
public string EventType { get; set; }
public string Name1 { get; set; }
public string Value1 { get; set; }
}
}
再来一个抽象事件类及几个具体事件类,用于创建上面的事件数据对象,相当于通过这些不同的类来生成不同类型的数据。
namespace ConsoleApplication1.ObserverDesignModelTest
{
public abstract class AbstractEvent
{
public event Action<EventData> TriggerEvent;
public abstrac