观察者模式
来源:互联网 发布:温泉洗浴软件 编辑:程序博客网 时间:2024/06/07 18:55
import java.util.LinkedList;import java.util.List;public class EventManager { private List<EventObserver> mEventObserver; private static EventManager sInstance; public synchronized static EventManager getInstance(){ if (sInstance==null) sInstance=new EventManager(); return sInstance; } public EventManager() { mEventObserver = new LinkedList<EventObserver>(); } public void registerEventObserver(EventObserver ob) { synchronized (mEventObserver) { if (!mEventObserver.contains(ob)) { mEventObserver.add(ob); } } } public void unregisterEventObserver(EventObserver ob) { synchronized (mEventObserver) { mEventObserver.remove(ob); } } public void notifyEventHappened() { synchronized (mEventObserver) { for (EventObserver ob : mEventObserver) { ob.onEventHappened(); } } } public interface EventObserver { public void onEventHappened(); }}EventManager管理者某些事件的处理,其他类实现EventObserver,EventManager通过registerEventObserver方法将它们注册成自己的监听器,存放在监听器链表里。
当事件发生时,EventManager通过notifyEventHappened来通知链表中的所有监听器执行它们实现的onEventHappened()方法进行相应处理。
之前写过一篇java回调函数
0 0
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- android远程调试工具
- 沉降观测原始数据编译
- linux内存管理
- CALayer与UIView
- 开源项目介绍
- 观察者模式
- this.getsession和this.getHibernateTemplate().getSessionFactory().getCurrentSession().OpenSession区别
- java笔记-交通灯管理系统
- PS结构-提取数据帧
- libevent timer 的原理 (min-heap)
- android添加网路权限
- servlet+jquery+ajax+json 例子
- la 3882
- 一位软件工程师的6年总结