observer.java
来自「real-time design patterns in Real-time j」· Java 代码 · 共 63 行
JAVA
63 行
package designPatterns.Observer;import designPatterns.*;import java.util.LinkedList;import java.util.Iterator;import javax.realtime.LTMemory;public abstract class Observer { /* * Observed data */ protected Data data; // Clients list private LinkedList clientsList; // Logic of notify method encapsulated into a scoped class ScopedNotify sNotify; public Observer(Data data) { this.data = data; clientsList = new LinkedList(); sNotify = new ScopedNotify(clientsList, this.data); } public void subscribe(ObserverClient client) { clientsList.addLast(client); } public void unsubscribe(ObserverClient client) { clientsList.remove(client); } private LTMemory mem = new LTMemory(1024*16); static class ScopedNotify implements Runnable { private LinkedList clients; private Data data; public ScopedNotify(LinkedList clients, Data data) { this.clients = clients; this.data = data; } public void run() { Iterator i = clients.iterator(); while (i.hasNext()) { ObserverClient cl = (ObserverClient)i.next(); cl.accept(data); } } } protected void notifyClients() { mem.enter(sNotify); } public void acceptData(Data data) { this.data.copyValue(data); notifyClients(); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?