1.监听器:
一对一模式下的观察者模式
控件(View)设置点击监听器,有点击事件发生时,调用 监听器对象对应的方法(onClick),具体的调用是通过performClick()来指派的,
目标是:View
观察者是:OnClickListener (这个接口里面有个方法是 onClick)
View 通过set操作,为自己添加观察者,也叫注册观察者,他可以添加很多观察者,这里面只说添加了 点击事件观察者;同时View还必须要实现performClick(),这个函数的功能就是:当状态或者事件发生的时候,去通知观察者处理,如果没有观察者,将会返回false
观察者是一个接口,在使用的时候必须要实现接口中的方法,有两种方法:一个是创建一个类实现该接口,这也是设计模式那本书或者网上介绍观察者模式的时候经常用到的方式;第二个方式就是使用匿名内部类,new OnClckListener(){//在这个代码块中实现onClick()方法;}
2.BroadcastReceiver:广播接收者
多对一情况下的观察者模式
一个事物改变了需要通知另外一个事物,此时就需要观察者来监控,只要是注册过的观察者都能收到通知,
BroadcastReceiver:就是一个监听器,观察者 对象,他有一个方法是onReceive
目标这个要分情况:因为我们的广播注册有两种方式,一种是XML注册,一种是动态注册,如果是XML注册,它的目标应该就是应用程序,如果是动态注册,就是对应的activity或者service了,
参考:
http://www.w2bc.com/Article/76136