领域驱动设计系列 (四):事件驱动下
前言 上一篇说到为什么要使用事件驱动,但是只有概念是不够的,我们要代码呀!记得脸书的老总说过: "Talk is cheap, Show me the code!" 实现思路 发出事件 事件顾名思义就是一件事情发生了,比如我要上头条,这不是一个事件,这事一个Command, HeadCommand, 而我上头条了这就是一个事件HeadedEvent,事件就是一件事情已经发生了。 好,先来一个伪代码 public void Head() { var NewsPaper = new NewsPaper("南都娱乐"); NewsPaper.WriteToHeader("汪峰"); RaiseEvent(new HeadedEvent {Name = "汪峰"}); } 所以我们只需在代码里RaiseEvent就可以了。 那么如何订阅事件 其实很简单,因为我们要实现的是同步的事件,我们只需要找到所有处理这个事件的实现类,然后调用所有就可以了。 public interface IEventHandler<TEvent> where TEvent : Event { void Ha...