观察者设计模式就是我们常说的回调。
回调的本质就是一个对象的引用传递。
1、找出被观察者;
2、定义一个观察者接口,接口中的方法就是观察者感兴趣的事件;
3、在被观察者中保存观察者的引用;
4、在事件发生的时候,通知观察者,调用观察者中的方法。
写回调的思想:
要暴露哪个类的数据,就在哪个类写接口;
要暴露哪个参数就写什么方法;
调方法是为了传参数。
A类 B类
被观察者的 观察者
B给A传一个对象;
A中再用这个对象调B的方法回传参数。
//定义一个观察者接口,接口中的方法就是观察者感兴趣的事件;
public interface OnClickListener {
void onClick(View v);
}
private OnClickListener mOnClickListener;
//在被观察者中保存观察者的引用;
public void setOnClickListener(OnClickListener listener) {
this.mOnClickListener = listener;
}