An open API service indexing awesome lists of open source software.

https://github.com/sheng-jie/EventBus

C# 事件总线实现
https://github.com/sheng-jie/EventBus

csharp eventbus observer-pattern publisher-subscriber

Last synced: 11 months ago
JSON representation

C# 事件总线实现

Awesome Lists containing this project

README

          

# 1. 简单介绍
事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉。事件总线是对发布-订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。

我们来看看事件总线的处理流程:

![图1:EventBus流程](http://upload-images.jianshu.io/upload_images/2799767-6f44bdefa88a23a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

Event Bus就相当于一个介于Publisher和Subscriber中间的桥梁。它隔离了Publlisher和Subscriber之间的直接依赖,接管了所有事件的发布和订阅逻辑,并负责事件的中转。

# 2.实现原理
1. [事件总线知多少(1)](http://www.jianshu.com/p/22fbe7a7c120)
2. [事件总线知多少(2)](http://www.jianshu.com/p/61042d36b010)

# 3.事件总线的实现要点
1. 事件总线维护一个事件源与事件处理的映射字典;
2. 通过单例模式,确保事件总线的唯一入口;
3. 利用反射或依赖注入完成事件源与事件处理的初始化绑定;
4. 提供统一的事件注册、取消注册和触发接口。

# 4.集成消息队列
计划开发中。