All Projects → sheng-jie → Eventbus

sheng-jie / Eventbus

Licence: mit
C# 事件总线实现

Programming Languages

csharp
926 projects

Labels

Projects that are alternatives of or similar to Eventbus

Flair
This is powerful android framework
Stars: ✭ 31 (-75.59%)
Mutual labels:  eventbus
Fluxxan
Fluxxan is an Android implementation of the Flux Architecture that combines concepts from both Fluxxor and Redux.
Stars: ✭ 80 (-37.01%)
Mutual labels:  eventbus
Kotlinmvpsamples
🚀(Kotlin 版 )快速搭建 Kotlin + MVP + RxJava + Retrofit + EventBus 的框架,方便快速开发新项目、减少开发成本。
Stars: ✭ 103 (-18.9%)
Mutual labels:  eventbus
Rxemitter
RxEmitter = 🐟Rxjs + 🐡eventBus.
Stars: ✭ 43 (-66.14%)
Mutual labels:  eventbus
Videosniffer
视频嗅探服务(VideoSniffer API Service On Android)
Stars: ✭ 68 (-46.46%)
Mutual labels:  eventbus
Rabbitevents
Nuwber's events provide a simple observer implementation, allowing you to listen for various events that occur in your current and another application. For example, if you need to react to some event published from another API.
Stars: ✭ 84 (-33.86%)
Mutual labels:  eventbus
Vertx Eventbus Java
A Vert.x EventBus client written in Java, works on Android
Stars: ✭ 20 (-84.25%)
Mutual labels:  eventbus
Rxbus2
RxJava2 based bus with queuing (e.g. lifecycle based) support
Stars: ✭ 116 (-8.66%)
Mutual labels:  eventbus
Bekit
bekit框架致力于解决在应用开发中的公共性痛点,已有“事件总线”、“流程引擎”、“服务引擎”。其中“流程引擎”可作为分布式事务解决方案saga模式的一种实现,并且它很轻量不需要服务端、不需要配置,就可直接使用。
Stars: ✭ 71 (-44.09%)
Mutual labels:  eventbus
Event
📢 Lightweight event manager and dispatcher implements by Go. Go实现的轻量级的事件管理、调度程序库, 支持设置监听器的优先级, 支持根据事件名称来进行一组事件的监听
Stars: ✭ 99 (-22.05%)
Mutual labels:  eventbus
Ticket Analysis
移动端的彩票开奖查询系统
Stars: ✭ 61 (-51.97%)
Mutual labels:  eventbus
Rxeventbus
A EventBus based on RxJava2, using Retention.CLASS annotation.
Stars: ✭ 68 (-46.46%)
Mutual labels:  eventbus
Ts Event Bus
📨 Distributed messaging in TypeScript
Stars: ✭ 85 (-33.07%)
Mutual labels:  eventbus
Asombroso Ddd
Una lista cuidadosamente curada de recursos sobre Domain Driven Design, Eventos, Event Sourcing, Command Query Responsibility Segregation (CQRS).
Stars: ✭ 41 (-67.72%)
Mutual labels:  eventbus
Channel
一行代码发送和接收事件LiveData|LifeCycle|Coroutine特性的事件总线框架
Stars: ✭ 108 (-14.96%)
Mutual labels:  eventbus
Androidutilcode
AndroidUtilCode 🔥 is a powerful & easy to use library for Android. This library encapsulates the functions that commonly used in Android development which have complete demo and unit test. By using it's encapsulated APIs, you can greatly improve the development efficiency. The program mainly consists of two modules which is utilcode, which is commonly used in development, and subutil which is rarely used in development, but the utils can be beneficial to simplify the main module. 🔥
Stars: ✭ 30,239 (+23710.24%)
Mutual labels:  eventbus
Resugan
simple, powerful and unobstrusive event driven architecture framework for ruby
Stars: ✭ 82 (-35.43%)
Mutual labels:  eventbus
Milkomeda
Spring extend componets which build from experience of bussiness, let developers to develop with Spring Boot as fast as possible.(基于Spring生态打造的一系列来自业务上的快速开发模块集合。)
Stars: ✭ 117 (-7.87%)
Mutual labels:  eventbus
Cscore
cscore is a minimal-footprint library providing commonly used helpers & patterns for your C# projects. It can be used in both pure C# and Unity projects.
Stars: ✭ 115 (-9.45%)
Mutual labels:  eventbus
Rabbus
A tiny wrapper over amqp exchanges and queues 🚌 ✨
Stars: ✭ 86 (-32.28%)
Mutual labels:  eventbus

1. 简单介绍

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

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

图1:EventBus流程

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

2.实现原理

  1. 事件总线知多少(1)
  2. 事件总线知多少(2)

3.事件总线的实现要点

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

4.集成消息队列

计划开发中。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].