开源事件总线框架Leb event bus
软件产品的终极目标是松耦合,很多技术的出现都是为解决耦合问题,比如IoC,AOP,观察者模式,面向接口编程,MVC等,事件驱动架构EDA(Event-Driven Architecture)也是。 事件总线(event bus)的本质是观察者模式。其优点有:解耦,依赖反转,反转控制,好莱坞原则;高性能,天生多线程;易维护,随时增加修改;符合自然思维,一件事情发生引发另一件事。
Leb是一个极其轻量级的event bus框架,简单易用,下面的这个HelloWorld基本概括了leb的全部用法,够简单吧。
public class Say { |
如下是测试代码:
Lebs leb = Lebs.singleton(); |
Say.java是一个普通的POJO,并在相应的监听方法上加上@Observe注解。将Say的实例注册到Lebs中,之后便可以通过总线发送消息,相应的@Observe便会处理。
在后续的版本中,将提供与guice和spring的集成,下图是Leb的架构,非常简单。
源代码:
Github Leb http://github.com/bruce-sha/leb
Github Sardine http://github.com/bruce-sha/sardine