观察者模式--CustomEventBus项目

观察者模式:定义了对象之间的一对多依赖,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
使用场景:
1.某些时候需要一些对象有所关联,而且这种关联是可以拆分而不是组合在一起的。
2.某一事件发生,需要向多方触发。
3.消息交换,如消息队列、事件总线的处理机制。
 

观察者模式主要角色:

  1. Subject:抽象主题,被观察者(Observable)的抽象,管理着众多观察者的实现,可以实现添加或删除观察者的功能。
  2. ConcreteSubject:具体主题,被观察者(Observable)的实现,通过该实现来向观察者发送通知。
  3. Observer:抽象观察者(Observer),观察者的抽象。一般是接口,实现该接口生成各种各样的观察者。
  4. ConcreteObserver:具体观察者,抽象观察者的具体实现,当被观察者发生变化时执行具体逻辑


1.定义抽象的被观察者IEventBus.java
 

 

2.具体的被观察者CustomEventBus.java

        

 

 

3.抽象的观察者接口

  

接口为View.OnClickListener()

4.具体的观察者CustomBusActivity.java

 优点:

1.解耦,被观察者只知道观察者列表「抽象接口」,被观察者不知道具体的观察者

2.被观察者发送通知,所有注册的观察者都会收到信息「可以实现广播机制」

 

posted @ 2018-10-23 18:30  深于黑  阅读(219)  评论(0编辑  收藏  举报