一种基于MVC的数据提取方法,包括:获取控制层对象的数据提取请求;获取所述数据提取请求对应的网络地址参数和数据载体对象;根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函数抓取网络数据;根据所述数据载体对象对抓取到的网络数据进行解析,根据解析得到的数据对所述数据载体对象进行赋值;将所述数据载体对象返回给与所述数据提取请求对应的控制层对象。此外,还提供了一种基于MVC的数据提取装置。上述基于MVC的数据提取方法及装置能够提高扩展性。
【技术实现步骤摘要】
本专利技术涉及计算
,特别是涉及一种基于MVC的数据提取方法及装置。
技术介绍
在传统的MVC(Model-View-Controller,模型-视图-控制器模式)设计范式中,数据流由控制层对象进行控制,控制层对象可从模型层对象中提取数据并发送至视图层对象进行展示,也可接收由视图层对象获取的输入数据,将其存储到模型层对象中。而且,控制层对象还通常需要根据业务需求抓取网络数据,然后在控制层将抓取到的网络数据封装成数据载体对象,然后再将该数据载体对象发送至视图层进行展示,且将该数据载体对象存储到模型层中。然而,专利技术人经研究发现现有的数据提取方法至少存在以下问题:传统技术中的数据提取方法需要由控制层对象抓取网络数据,然后根据模型层定义的数据载体对象封装网络数据,使得控制层和模型层之间耦合度增加,即需要对数据载体对象的类属性项进行修改时,需要相应地修改控制层的代码,从而降低了扩展性。
技术实现思路
基于此,有必要提供一种能提高扩展性的基于MVC的数据提取方法。一种基于MVC的数据提取方法,包括:获取控制层对象的数据提取请求;获取所述数据提取请求对应的网络地址参数和数据载体对象;根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函数抓取网络数据;根据所述数据载体对象对抓取到的网络数据进行解析,根据解析得到的数据对所述数据载体对象进行赋值;将所述数据载体对象返回给与所述数据提取请求对应的控制层对象。此外,还有必要提供一种能提高扩展性的基于MVC的数据提取装置。一种基于MVC的数据提取装置,包括:请求获取模块,用于获取控制层对象的数据提取请求;数据载体对象获取模块,用于获取所述数据提取请求对应的网络地址参数和数据载体对象;数据抓取模块,用于根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函数抓取网络数据;数据封装模块,用于根据所述数据载体对象对抓取到的网络数据进行解析,根据解析得到的数据对所述数据载体对象进行赋值;数据返回模块,用于将所述数据载体对象返回给与所述数据提取请求对应的控制层对象。上述基于MVC的数据提取方法及装置,由属于模型层的数据载体对象抓取网络数据,并将抓取到的网络数据通过回调函数解析后设置为数据载体对象的类属性并返回。对于控制层对象而言,数据载体对象的网络数据抓取操作为透明状态,数据载体对象的类属性值是由网络数据抓取得到或是由模型层的存储数据得到均不影响控制层对象的实现,使得控制层对象和模型层对象的耦合度降低,从而提高了扩展性。附图说明图1为一个实施例中MVC架构示意图;图2为一个实施例中基于MVC的数据提取方法的流程图;图3为一个实施例中基于MVC的数据提取装置的结构示意图;图4为另一个实施例中基于MVC的数据提取装置的结构示意图。具体实施方式MVC全名是Model-View-Controller,是模型(model)、视图(view)、控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的软件架构,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。如图1所示,视图层对象用于定义数据的展示方式以及样式,模型层对象用于数据的持久化存储,控制层对象则用于根据预设的读取业务逻辑从模型层对象中提取数据,并发送给视图层对象进行表达,也用于根据预设的写入业务逻辑将用户通过视图层对象输入的数据筛选或封装后传递给模型层对象进行持久化存储。从功能上讲,视图层对象、控制层对象和模型层对象各自功能独立,层与层之间耦合度较低,从而扩展性较强。在一个实施例中,如图2所示,一种基于MVC的数据提取方法,该方法完全依赖于计算机程序且基于前述的MVC架构,该计算机程序可运行于基于冯洛伊曼体系的计算机系统上。该方法包括以下步骤:步骤S102,获取控制层对象的数据提取请求。步骤S104,获取数据提取请求对应的网络地址参数和数据载体对象。在本实施例中,数据提取请求由控制层对象发起,由模型层对象受理。若控制层对象中的业务逻辑需要通过网络抓取外部的网络数据,则可在数据提取请求中加入相应的网络地址参数。数据载体对象为通过类属性缓存数据,用于在软件模块之间传递的数据对象。在一个应用场景中,若模型层持久化存储的方式为数据库存储方式,数据载体对象可以是VO对象(value object)对象,数据库中用户表可对应用户VO对象,用户表中的各个字段与用户VO对象的各个类属性项对应。例如,数据库中用户表的name字段和age字段可对应用户VO对象中的name属性和age属性。在本实施例中,可根据MVC框架的数据映射配置获取数据提取请求对应的数据载体类型标识。例如,用户VO对象在MVC框架的数据映射配置中对应有与用户业务逻辑相关的控制层对象;微博VO对象在MVC框架的数据映射配置中对应有与微博业务逻辑相关的控制层对象。则与用户业务逻辑相关的控制层对象发出的数据提取请求即对应用户VO对象。在本实施例中,若数据提取请求中不包含网络地址参数,即若获取不到网络地址参数,则获取与数据提取请求对应的持久化数据,根据持久化数据生成与数据提取请求对应的数据载体对象并返回。也就是说,可根据数据提取请求是否包含网络地址参数进行判断,若包含网络地址参数,则表示业务层对象希望获取的数据需要根据该网络地址参数进行网络抓取;若不包含网络地址参数,则表示业务层对象希望获取的数据为模型层持久化存储的数据。例如,若模型层持久化存储的方式为数据库存储方式,则可提取数据提取请求对应的关键字,然后在数据库中查找与该关键字对应的持久化数据,并根据数据载体类型标识生成相应的数据载体对象,并返回。例如,在一个应用场景中,数据提取请求中仅包含用户姓名的关键字“张三”,可获取数据库中的用户表,在用户表中查找与关键字“张三”对应的数据项,并根据该数据项生成用户VO对象,且该用户VO对象的name属性为“张三”,其他类属性与该数据项中其他字段下的值相对应。步骤S106,根据网络地址参数通过调用数据载体对象的网络数据抓取函数抓取网络数据。网络数据抓取函数可以具有多态的形式,即包含抓取参数为GET或P本文档来自技高网...
【技术保护点】
一种基于MVC的数据提取方法,包括:获取控制层对象的数据提取请求;获取所述数据提取请求对应的网络地址参数和数据载体对象;根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函数抓取网络数据;根据所述数据载体对象对抓取到的网络数据进行解析,根据解析得到的数据对所述数据载体对象进行赋值;将所述数据载体对象返回给与所述数据提取请求对应的控制层对象。
【技术特征摘要】
1.一种基于MVC的数据提取方法,包括:
获取控制层对象的数据提取请求;
获取所述数据提取请求对应的网络地址参数和数据载体对象;
根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函数抓
取网络数据;
根据所述数据载体对象对抓取到的网络数据进行解析,根据解析得到的数
据对所述数据载体对象进行赋值;
将所述数据载体对象返回给与所述数据提取请求对应的控制层对象。
2.根据权利要求1所述的基于MVC的数据提取方法,其特征在于,所述
根据所述数据载体对象对抓取到的网络数据进行解析的步骤包括:
获取所述数据载体对象对应的数据载体类型标识。
根据所述数据载体类型标识调用相应的解析函数对所述抓取到的网络数据
进行解析。
3.根据权利要求1所述的基于MVC的数据提取方法,其特征在于,所述
数据载体对象继承自同一数据载体接口类;
所述根据所述网络地址参数通过调用所述数据载体对象的网络数据抓取函
数抓取网络数据的步骤包括:
获取所述数据载体接口类定义的网络数据抓取函数;
将所述网络地址参数作为函数参数传递给所述网络数据抓取函数,获取返
回的与所述网络地址参数对应的网络数据。
4.根据权利要求1或3所述的基于MVC的数据提取方法,其特征在于,
所述根据所述数据载体对象对抓取到的网络数据进行解析的步骤包括:
获取与所述数据载体对象对应的数据解析对象,所述数据解析对象继承自
同一数据解析接口类;
根据所述抓取到的网络数据调用所述数据解析对象的接口函数进行解析。
5.根据权利要求1所述的基于MVC的数据提取方法,其特征在于,所述
获取所述数据提取请求对应的网络地址参数和数据载体对象的步骤之后还包
\t括:
若获取不到网络地址参数,则获取与所述数据提取请求对应的持久化数据,
根据所述持久化数据生成与所述数据提取请求对应的数据载体对象并返回。
6.根据权利要求1所述的基于MVC的数据提取方法,其特征在于,所述
根据解析得到的数据对所述数据载体对象进行...
【专利技术属性】
技术研发人员:李诚,郑晖,杨振宇,王湘勇,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。