Android观察者模式学习笔记
2017-11-10 14:49
453 查看
Android观察者模式学习笔记
1新建一个观察者的接口public interface A { void updata(String s);//更新数据 }
2新建一个被观察者的接口
public interface B { void register(A a);//注册观察者 void unregister(A a);//注销观察者 void change();//数据发生改变 }
3新建一个被观察者
public class C implements B { private ArrayList list = new ArrayList();//用来装载观察者 private int data;//测试数据 @Override public void register(A a) {//实现注册方法 list.add(a); } @Override public void unregister(A a) {//实现注销方法 int i = list.indexOf(a); if(i >= 0){ list.remove(i); } } @Override public void change() {//实现数据改变方法 for(int i = 0; i < list.size(); i++){ A a = (A)list.get(i);//遍历所有的观察者 a.updata(data +"");//执行观察者的更新方法 } } public void setData(int data){//测试方法,改变数据测试效果 this.data = data; change(); } }
4新建一个观察者
public class D implements A { @Override public void updata(String s) { System.out.print("D类接收到数据变化=" + s); } }
5新建一个测试类
public class E { public static void main(String[] args) { C c = new C();//被观察者 D d = new D();//观察者 c.register(d);//注册观察者 c.setData(2);//数据发生改变 c.setData(3);//数据发生改变 c.unregister(d);//注销观察者 c.setData(4);//数据发生改变 } }
6运行结果
D类接收到数据变化=2D类接收到数据变化=3
7总结,可以看到注册之后,数据发生变化时观察者执行了自己的updata()方法,而注销之后就不会在执行了
相关文章推荐
- java/android 设计模式学习笔记(2)---观察者模式
- 学习笔记----------observer观察者模式
- C#面向对象设计模式纵横谈 学习笔记19 Observer观察者模式(行为型模式)
- 步步为营 .NET 设计模式学习笔记 十二、Observer (观察者模式)
- 步步为营 .NET 设计模式学习笔记 十二、Observer (观察者模式)
- java 设计模式学习笔记(12) - 观察者模式
- HeadFirst 设计模式学习笔记2--观察者模式
- 设计模式学习笔记(二)之观察者模式(Observer)
- 设计模式学习笔记——观察者模式
- 学习笔记 ---- 设计模式之观察者模式
- Design Pattern学习笔记 --- 观察者(Observer)模式
- 设计模式学习笔记(二十一)——Observer观察者
- 设计模式学习笔记(二)之观察者模式(Observer)
- 设计模式C++学习笔记之十六(Observer观察者模式)
- 设计模式C++学习笔记之十六(Observer观察者模式)
- 大话设计模式之观察者模式--学习笔记
- HeadFirst 设计模式学习笔记2--观察者模式
- 设计模式学习笔记(二)之观察者模式(Observer)
- Android 学习笔记5---程序开发模式&拨号器&短信发送器小例程
- 《Head.First设计模式》的学习笔记(3)--观察者模式