观察者模式
- 在java中,我们都知道有两个内置类型,一个是Observer接口,一个是Obserable实现类。Observer是观察者实现的接口,Observable是被观察者实现的类
- 观察者模式:Observable持有observer的引用,一旦Observable发生改变,就通知所有的observer
- 接下来我们模拟contentprivider短信验证
SmsDB代码
`public class SmsDB extends Observable{ public void notifyChanged(){ setChanged();//设置数据源发生改变 notifyObservers("短信数据库更新了");//提示所有的观察者 } }
`
SmsObserver的实现
`public class SmsObserver implements Observer { private String name; public SmsObserver(String name) { super(); this.name = name; } @Override public void update(Observable observable, Object data) { // TODO Auto-generated method stub Log.e("", name+"收到了"+data); } }
`
初始化并注册观察者
` private void initAndRegisterObserver() { // TODO Auto-generated method stub SmsObserver observer1=new SmsObserver("observer1"); SmsObserver observer2=new SmsObserver("observer2"); SmsObserver observer3=new SmsObserver("observer3"); db = new SmsDB(); db.addObserver(observer1); db.addObserver(observer2); db.addObserver(observer3); }
`
接着就是触发事件
`public void notify(View v){ db.notifyChanged(); }
`
事件触发截图