锯铝机哪个精确度好:Banq,请教一下关于异步事件监听模式
来源:百度文库 编辑:九乡新闻网 时间:2024/10/06 16:10:32
0lhw0
您曾经说过:”事件监听异步模式在Source和Listener之间引入event queue,
event queue是一个基于事件的publish-subscribe. 它一种松耦合方式提供不同模块和角色之间异步通讯。它比同步更加松耦合,这样,我们就把Source-Listener改成了publish-queue-subscribe方式。“
能解释一下
banq
public class QueueMessageProcessor {
private LinkedBlockingQueue queue;
public QueueMessageProcessor() {
queue = new LinkedBlockingQueue();
}
//publisher调用本方法
public void addMessage(Object o) {
queue.add(o);
}
//subscriber调用本方法
public Object getMessage() {
try {
return queue.take();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
public class QueueMessageProcessor {
private LinkedBlockingQueue queue;
public QueueMessageProcessor() {
queue = new LinkedBlockingQueue();
}
//publisher调用本方法
public void addMessage(Object o) {
queue.add(o);
}
//subscriber调用本方法
public Object getMessage() {
try {
return queue.take();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
IceQi
LZ这个queue的核心作用是彻底分割source 和 listener。由于和他们直接沟通的对象变成了queue这样就没有人需要关心“我的数据给谁”和“谁给我提供数据”这样的问题了。
在做系统设计的时候“除非必要,什么都不要知道,什么都不要假设”是一个基本的原则。
0lhw0
谢谢banq的指点,豁然开朗。
感谢IceQi。
这个event queue扮演的就是那个中介者的角色,将Source和Listener关联起来。
to--IceQi
在做系统设计的时候“除非必要,什么都不要知道,什么都不要假设”是一个基本的原则。
这应该就是那个著名的”不要和陌生人说话“--迪米特原则吧。
Banq,请教一下关于异步事件监听模式
关于子线长短的问题 请教一下
Dojo异步编程 事件描述
请教一下国民党军队军衔的演变知识?
请教关于火车的颜色。
简介新课程异步教学操作系统(模式)-江汉外国语学校
星座事件 了解一下
请教一下1955年粟裕没被授予元帅军衔的原因。
请教一下,没钱吃饭用文言文怎么说啊?
请教张工关于垃圾处理器
关于一路通的问题,请教大家!
关于“订阅……文章”的请教
变革传统教学模式 打造异步教学品牌——异步教学实验报告_中国报刊杂志大全_杂志社介绍_期刊...
关于word修订模式
请教一些关于担保公司的问题1
请教深圳警方几个关于“治安高危人员”的问题
关于、《祖国不会忘记我》合唱的指挥请教_
【图】关于羚羊保养的问题请教前辈
请教:关于财务主管工作交接注意事项 ← 财务经理人论坛
请教关于强肾气功与手淫的问题_
异步调用
关于模式与非模式对话框-new
监听音箱
关于模式的其他说法