java 推拉流_【Java Web】——基于事件流的访问XML方式之推拉模型

在上篇博客中,我们介绍了两种访问XML的方式,一种是基于DOM文档的,另一种是基于SAX事件流的。在介绍面向事件访问方式的两种方法:SAX和STAX,提到了两个特别有意思的词:“推”模型和“拉”模型。

今天,我们就通过代码来看一下,它们是如何体现推和拉的。

【生活中的推拉模型】

在查找资料的时候,看到有人对这个推拉的比喻特别恰当。其实编程里面的一些词,都可以从现实生活中找到例子。例如这个推拉,就比如说发传单。发传单有两种方式:塞和取。前者是你经过的时候,发传单的人主动的扔给你,塞到你面前,而后者则向超市里的货架一样,摆在那里,等着你自己去取。

【编程中的推拉模型】

在我们的编程中的推拉,其实和现实生活中的推拉模型是一样的。它只不过是SAX方式解析XML的两种实现方法。其实,在我们的编程过程中也会遇到需要对某个对象进行监听,并在其发生变化的时候做出不同的反应情况。为实现此需求,我们有两种解决办法。

一、通过回调(CallBack)实现

定义一个函数,并且在其中编写变化处理语句,然后将其指针传递给被监听的对象,在被监听对象发生变化后,对其进行调用。这就是我们以事件为驱动的推模型(Event-driven programming)。就是对象发生改变的时候,用编写好的函数去处理这些参数。

二、通过轮询(Loop check)实现

不断去获取被监听对象的状态,在其改变后执行相应的语句。这就是拉模型,你获取被监听对象的状态,然后做出反应。

【SAX解析XML的推拉模型】

拉模型——STAX:获取XMLS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值