观察者模式与发布订阅者模式
1.观察者模式
Observerable依赖Observer
2.发布订阅模式
Publisher并不依赖Subscriber,Publisher和Subscriber并不存在耦合关系
可以看作观察者模式+中介者模式
EventBus
EventBus是发布订阅模式,Publisher并不需要依赖Subscriber
EventBus在内存中创建List<Event,List<Subscription>>集合
Subscription{Subscriber对象,SubscriberMethod}
register:向集合中添加
当调用register
时,反射获取@Subscribe注解的方法集合<List,并添加到List<Event,List>集合中
post: 从集合中获取
当调用post
时,从List<Event,List>集合中获取<Subscrier,SubscriberMethod>,反射调用SubscriberMethod方法