首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

观察者模式的应用

2012-08-27 
观察者模式的使用观察者模式是一对多(多对多)关系的模式。User向EventManager注册了listener,事件触发Trigg

观察者模式的使用
观察者模式是一对多(多对多)关系的模式。

User向EventManager注册了listener,事件触发Trigger类调用了EventManager的处理方法,Manager将事件加到队列中。嵌套类开启线程读取队列并逐一调用listeners中的处理方法。

实现伪代码:

Manager类:

public class EventManager {private static List listeners = new ArrayList();private static List queue = new LinkedList();public void addListener(Class clazz) {listeners.add(clazz);}public void trigger(Object obj) {queue.add(obj);}public static class Solver extends Thread{public void run() {while (queue.size() > 0) {Object obj = queue.getFirst();for (Iterator iter = listeners.iterator();iter.hasNext()) {User user = (User)iter.next();user.invalid(obj);}queue.removeFirst();}}}}


User类:

public class User {static {EventManager.addListener(User.class);}public void invalid(Object obj) {// do something}}


Trigger类:

public class Trigger {public void discriminate() {EventManager.trigger();}}

热点排行