页面逻辑控制方法及装置
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种页面逻辑控制方法及装置。
背景技术
目前的软件开发模型中,控制层会将视图层和模型层进行紧密的联系,这种联系方式使用直接引用关系来建立,也就是强引用关系。这种强引用关系的存在会随着业务逻辑的复杂度的增加,使得控制层与视图层和模型层之间的关系错综复杂,从而导致软件无法继续维系。此外,在这种强耦合关系条件下,实现软件的扩展和维护变得异常困难。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种页面逻辑控制方法及装置,能够有效降低视图层和控制层之间的耦合关系,极大地提高了软件的可扩展性和可维护性。
为了实现上述目的,本发明实施例采用的技术方案如下:
本发明一较佳实施例提供一种页面逻辑控制方法,应用于软件开发模型,所述软件开发模型包括数据层、控制层以及视图层。所述方法包括:
所述数据层获取数据;
所述数据层将获取的数据通过所述数据层与所述控制层之间的接口协议转换为预设格式数据后传送给所述控制层;
所述控制层对所述预设格式数据进行解析,得到与所述预设格式数据对应的呈现数据;
所述控制层基于所述呈现数据从所述控制层与所述视图层的至少一个界面接口中查找用于显示所述呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至所述视图层。其中,每一界面接口对应一类呈现逻辑;
所述视图层根据查找到的界面接口对所述呈现数据进行页面呈现。
在本发明一较佳实施例中,所述数据层将获取的数据通过所述数据层与所述控制层之间的接口协议转换为预设格式数据后传送给所述控制层的步骤,包括:
获取所述数据层和所述控制层之间的预设接口协议。其中,所述预设接口协议中包括有格式转换函数;
采用所述预设接口协议中的格式转换函数对所述获取的数据的格式进行转换;
在所述获取的数据的格式转换成功后,生成一预设格式的字符串。
在本发明一较佳实施例中,所述方法还包括:
创建所述数据层和所述控制层之间的预设接口协议;
所述创建所述数据层和所述控制层之间的预设接口协议的步骤包括:
响应创建所述数据层和所述控制层之间的预设接口协议的请求,创建所述预设接口协议。其中,所述预设接口协议用于实现所述数据层和所述控制层之间的通信。
在本发明一较佳实施例中,所述控制层基于所述呈现数据从所述控制层与所述视图层的至少一个界面接口中查找用于显示所述呈现数据的界面接口的步骤,包括:
获取所述呈现数据需要呈现的至少一个呈现逻辑;
根据每个呈现逻辑获取每个呈现逻辑对应的视图层的界面接口。
在本发明较佳实施例中,所述视图层根据查找到的界面接口对所述呈现数据进行页面呈现的步骤,包括:
响应设置包装层的请求,在所述控制层与所述视图层的每个界面接口之间设置一包装层;
所述包装层对所述界面接口进行包装,形成弱引用层,以使运行所述软件开发模型的计算机设备在当所述视图层存在内存泄露时,将泄露的内存进行回收。
本发明另一较佳实施例还提供一种页面逻辑控制装置,应用于软件开发模型,所述软件开发模型包括数据层、控制层以及视图层。所述装置包括:
获取模块,用于所述数据层获取数据;
转换模块,用于所述数据层将获取的数据通过所述数据层与所述控制层之间的接口协议转换为预设格式数据后传送给所述控制层;
解析模块,用于所述控制层对所述预设格式数据进行解析,得到与所述预设格式数据对应的呈现数据;
查找模块,用于所述控制层基于所述呈现数据从所述控制层与所述视图层的至少一个界面接口中查找用于显示所述呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至所述视图层。其中,每一界面接口对应一类呈现逻辑;
呈现模块,用于所述视图层根据查找到的界面接口对所述呈现数据进行页面呈现。
在本发明一较佳实施例中,所述转换模块包括:
协议获取子模块,用于获取所述数据层和所述控制层之间的预设接口协议,其中,所述预设接口协议中包括有格式转换函数;
转换子模块,用于采用所述预设接口协议中的格式转换函数对所述获取的数据的格式进行转换;
生成子模块,用于在所述获取的数据的格式转换成功后,生成一预设格式的字符串。
在本发明一较佳实施例中,所述装置还包括:
创建模块,用于创建所述数据层和所述控制层之间的预设接口协议;
所述创建所述数据层和所述控制层之间的预设接口协议的方式包括:
响应创建所述数据层和所述控制层之间的预设接口协议的请求,创建所述预设接口协议,其中,所述预设接口协议用于实现所述数据层和所述控制层之间的通信。
在本发明一较佳实施例中,所述查找模块包括:
逻辑获取子模块,用于获取所述呈现数据需要呈现的至少一个呈现逻辑;
接口获取子模块,用于根据每个呈现逻辑获取每个呈现逻辑对应的视图层的界面接口。
在本发明一较佳实施例中,所述呈现模块包括:
设置子模块,用于响应设置包装层的请求,在所述控制层与所述视图层的每个界面接口之间设置一包装层;
包装子模块,用于所述包装层对所述界面接口进行包装,形成弱引用层,以使运行所述软件开发模型的计算机设备在当所述视图层存在内存泄露时,将泄露的内存进行回收。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供的页面逻辑控制方法及装置,该方法通过数据层获取数据;数据层将获取的数据通过数据层与控制层之间的接口协议转换为预设格式数据后传送给控制层;控制层对预设格式数据进行解析,得到与预设格式数据对应的呈现数据;控制层基于呈现数据从控制层与视图层的至少一个界面接口中查找用于显示呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至视图层;视图层根据查找到的界面接口对呈现数据进行页面呈现。上述设计能够有效降低视图层和控制层之间的耦合关系,极大地提高了软件的可扩展性和可维护性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明一较佳实施例提供的计算机设备的方框示意图;
图2为本发明一较佳实施例提供的页面逻辑控制方法的一种流程示意图;
图3为本发明较佳实施例提供的页面逻辑控制方法的另一种流程示意图;
图4为图2中所示的步骤S220包括的各个子步骤的一种流程示意图;
图5为图2中所示的步骤S240包括的各个子步骤的一种流程示意图;
图6为图2中所示的步骤S250包括的各个子步骤的一种流程示意图;
图7为本发明另一较佳实施例提供的页面逻辑控制装置的一种功能模块图;
图8为本发明另一较佳实施例提供的页面逻辑控制装置的另一种功能模块图;
图9为图7中所示的转换模块包括的各个子模块的一种功能模块图;
图10为图7中所示的查找模块包括的各个子模块的一种功能模块图;
图11为图7中所示的呈现模块包括的各个子模块的一种功能模块图。
图标:100-计算机设备;110-存储器;120-处理器;130-通信单元;140-存储控制器;150-显示单元;200-页面逻辑控制装置;209-创建模块;210-获取模块;220-转换模块;221-协议获取子模块;222-转换子模块;223-生成子模块;230-解析模块;240-查找模块;241-逻辑获取子模块;242-接口获取子模块;250-呈现模块;251-设置子模块;252-包装子模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,图1是本发明一较佳实施例提供的计算机设备100的方框示意图。本发明实施例中,所述计算机设备100可以为用于运行有软件开发模型的电子设备。例如,所述计算机设备100可以是,但不限于,个人电脑(Personal Computer,PC)、笔记本电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(Mobile InternetDevice,MID)等。所述计算机设备100的操作系统可以是,但不限于,Windows系统、Linux系统、OSX系统等。优选地,在本实施例中,所述计算机设备100的操作系统可以为Windows系统。
如图1所示,所述计算机设备100可以包括存储器110、处理器120、通信单元130、存储控制器140以及显示单元150。所述存储器110、处理器120、通信单元130、存储控制器140以及显示单元150相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器110中存储有页面逻辑控制装置200,所述页面逻辑控制装置200包括至少一个可以软件或固件(Firmware)的形式存储于所述存储器110中的软件功能模块,所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本发明实施例中的页面逻辑控制装置200,从而执行各种功能应用以及数据处理,即实现本发明实施例中的页面逻辑控制方法。
其中,所述存储器110可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器110可进一步包括相对于处理器120远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备100。上述网络的实例可以包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述处理器120以及其他可能的组件对存储器110的访问可在所述存储控制器140的控制下进行。进一步地,所述通信单元130将各种输入/输入装置耦合至处理器120以及存储器110,上述存储器110内的软件程序以及模块还可包括操作系统,其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。
所述处理器120可以是一种集成电路芯片,具有信号的处理能力。上述的处理器120可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等。还可以是数字信号处理器(DSP))、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器120也可以是任何常规的处理器等。
所述通信单元130可以用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者所述计算机设备100进行通讯。所述通信单元130可与各种网络,如互联网、企业内部网、无线网络进行通讯或者通过无线网络与所述计算机设备100进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统、增强型移动通信技术、宽带码分多址技术,码分多址技术、时分多址技术、蓝牙、无线保真技术、网络电话、全球微波互联接入、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
所述显示单元150可以用于提供一个交互界面(例如用户操作界面)或用于显示图像数据。本实施例中,所述显示单元150可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处产生的触控操作,并将该感应到的触控操作交由处理器120进行计算和处理。
本实施例中,所述计算机设备100可以包括一软件开发模型,所述软件开发模型可以包括数据层、控制层以及视图层。其中,所述数据层用于进行数据逻辑的获取,所述控制层用于对所述数据层的的数据进行获取并将获取的数据进行数据转换和数据运输,所述视图层用于根据所述控制层传送的数据进行软件视图的展示。
下面以上述软件开发模型作为示例对本实施例的技术方案进行详细说明,作为优选,所述软件开发模型可以采用MVC开发模型。
请参阅图2,图2为本发明一较佳实施例提供的页面逻辑控制方法的流程示意图,所述页面逻辑控制方法应用于上述软件开发模型。所应说明的是,本发明实施例提供的方法不以图2及以下所述的具体顺序为限制。所述方法的具体流程如下:
步骤S210,数据层获取数据。
本实施例中,所述数据的获取方式不作具体限制,例如,所述数据层可以从某一数据库中获取数据,或者,从某一网络层中获取数据,又或者,从某一文件中获取数据等。无论所述数据的获取采用的是哪一种方式,所有获取的数据都会被存放在所述数据层中。
在传统的MVC开发模型中所述数据层和所述控制层之间是直接耦合关系,也就是“强引用关系”。简单地说,如果一个对象具有所述“强引用关系”,就可以理解为该对象是必不可少的,那么该对象也就不会被所述计算机设备100回收,正是因为这层“强引用关系”,如果所述数据层获取的数据源发生改变,那么所述控制层则无法获取到所述数据层传送的改变后的数据源,从而导致所述软件开发模型的扩展性和维护性很低。为了解决上述问题,请参阅图3,所述方法还可以包括:
步骤S209,创建所述数据层和所述控制层之间的预设接口协议。
具体地,在本实施例中,可以创建一套用于所述数据层和所述控制层之间的访问的预设接口协议,其中创建所述预设接口协议的方式可以是:所述计算机设备100响应创建所述数据层和所述控制层之间的预设接口协议的请求,创建用于实现所述数据层和所述控制层之间的通信的预设接口协议,所述预设接口协议中包括有用于对所述数据层获取的数据进行转换的格式转换函数。
请再次参阅图2,在创建好所述预设接口协议之后,参见步骤S220,所述数据层将获取的数据通过所述数据层与控制层之间的接口协议转换为预设格式数据后传送给所述控制层。
具体地,作为一种实施方式,请参阅图4,本实施例中,所述步骤S220可以包括以下子步骤:
子步骤S221,获取所述数据层和所述控制层之间的预设接口协议。
子步骤S222,采用所述预设接口协议中的格式转换函数对所述获取的数据的格式进行转换。
本实施例中,所述格式转换函数可以采用convert函数来实现所述获取的数据的格式的转换。具体地,所述convert函数可以将所述数据层获取的数据在所述预设接口协议中转换成JSON格式的数据,也就是说,无论所述数据层获取的是什么类型的数据,获取的数据都会被转换成JSON格式的数据,如此,所述数据层获取的任何数据对于所述控制层来说,都是一个JSON格式的数据。
子步骤S223,在所述获取的数据的格式转换成功后,生成一预设格式的字符串。
本实施例中,在所述获取的数据的格式转换成功后,可以生成一JSON字符串,并将生成的该JSON字符串传送给所述控制层。
通过上述设计,所述数据层和所述控制层之间通过预设接口协议进行耦合。通过固定的预设接口协议来耦合数据层和控制层之间的关系,可以实现所述数据层和所述控制层之间的弱耦合关系。后续如果需要更换数据层的数据,只需要重新定义一套数据接口协议,然后再重新对数据进行获取并转换成对应的JSON格式的数据,如此,所述控制层接收到的数据依旧是JSON格式的数据,因此对于控制层来说,数据源的更换并没有任何影响,这样就实现了所述数据层和所述控制层之间的弱耦合关系,后期就可以很方便地对数据源进行拓展处理。
请再次参阅图2,步骤S230,所述控制层对所述预设格式数据进行解析,得到与所述预设格式数据对应的呈现数据。
本实施例中,所述控制层可以通过现有的JSON解析工具对获取到的JSON格式的数据进行解析,从而获取到所述JSON格式的数据对应的呈现数据。
步骤S240,所述控制层基于所述呈现数据从所述控制层与视图层的至少一个界面接口中查找用于显示所述呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至所述视图层。
作为一种实施方式,请参阅图5,所述步骤S240可以包括以下子步骤:
子步骤S241,获取所述呈现数据需要呈现的至少一个呈现逻辑。
子步骤S242,根据每个呈现逻辑获取每个呈现逻辑对应的视图层的界面接口。
由于软件视图的变化形式是多种多样的,对于不同的视图层的展现逻辑也是多种多样的,在本实施例中,每一个所述界面接口对应一类呈现逻辑。简单地说,相同类别的呈现逻辑可以通过相同的界面接口来进行呈现,而不同的呈现逻辑则需要不同的界面接口来实现各自的视图功能的呈现。
所述界面接口通过接口函数进行设计,所述接口函数根据开发的软件需要呈现的界面来进行对所述界面接口进行设计,例如开发的软件需要A、B、C三个界面,那么所述接口函数则将A、B、C三个界面的界面接口进行抽象,这样所述控制层可以直接通过每个界面接口来控制所述视图层的呈现逻辑。也就是说,所述控制层在获取到所述呈现数据进行呈现的呈现逻辑后,就可以获取到对应该呈现逻辑的界面接口,从而可以控制所述所述视图层通过对应的界面接口将所述呈现数据进行呈现。其中,到达所述视图层的呈现数据就是需要呈现的最终数据,此时所述视图层只负责根据对应的呈现逻辑将呈现数据进行呈现,而不需要对呈现数据进行任何处理。
步骤S250,所述视图层根据查找到的界面接口对所述呈现数据进行页面呈现。
作为一种实施方式,请参阅图6,所述步骤S250可以包括以下子步骤:
子步骤S251,响应设置包装层的请求,在所述控制层与所述视图层的每个界面接口之间设置一包装层。
子步骤S252,所述包装层对所述界面接口进行包装,形成弱引用层,以使运行所述软件开发模型的计算机设备100在当所述视图层存在内存泄露时,将泄露的内存进行回收。
具体地,由于所述视图层占用内存较大,需要对所述视图层的内存进行严格管理,否则容易出现内存泄露的问题。本实施例中,可以在所述控制层和所述视图层的每个界面接口之前设置一层包装层,作为一种实施方式,所述包装层可以通过引用队列(WeakReference)进行包装。然后所述包装层能够对所述界面接口进行包装,从而形成弱引用层,所述弱引用层可以使得所述视图层和所述控制层之间形成一弱引用关系。如果弱引用所引用的对象(例如,视图层)存在内存泄露,那么所述计算机设备100就会将泄露的内存进行回收。具体地,可以通过运行于所述计算机设备100上的JAVA虚拟机中的垃圾回收期进行回收,这样就可以有效避免所述视图层产生的内存泄露的问题。
通过上述设计,不仅有效地降低了视图层和控制层之间的强耦合关系,同时也能够有效地避免所述视图层中内存泄漏产生的风险。
请参阅图7,本发明另一较佳实施例还提供一种页面逻辑控制装置200,所述装置存储于所述计算机设备100的存储器110中,由所述处理器120执行所述装置对应的各功能模块的运行。其中,所述装置应用于软件开发模型,所述软件开发模型包括数据层、控制层以及视图层。所述装置可以包括:
获取模块210,用于所述数据层获取数据。
转换模块220,用于所述数据层将获取的数据通过所述数据层与所述控制层之间的接口协议转换为预设格式数据后传送给所述控制层。
解析模块230,用于所述控制层对所述预设格式数据进行解析,得到与所述预设格式数据对应的呈现数据。
查找模块240,用于所述控制层基于所述呈现数据从所述控制层与所述视图层的至少一个界面接口中查找用于显示所述呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至所述视图层。其中,每一界面接口对应一类呈现逻辑;
呈现模块250,用于所述视图层根据查找到的界面接口对所述呈现数据进行页面呈现。
进一步地,请参阅图8,所述装置还可以包括:
创建模块209,用于创建所述数据层和所述控制层之间的预设接口协议;
所述创建所述数据层和所述控制层之间的预设接口协议的方式包括:
响应创建所述数据层和所述控制层之间的预设接口协议的请求,创建所述预设接口协议,其中,所述预设接口协议用于实现所述数据层和所述控制层之间的通信。
进一步地,请参阅图9,所述转换模块220可以包括:
协议获取子模块221,用于获取所述数据层和所述控制层之间的预设接口协议。其中,所述预设接口协议中包括有格式转换函数。
转换子模块222,用于采用所述预设接口协议中的格式转换函数对所述获取的数据的格式进行转换。
生成子模块223,用于在所述获取的数据的格式转换成功后,生成一预设格式的字符串。
进一步地,请参阅图10,所述查找模块240可以包括:
逻辑获取子模块241,用于获取所述呈现数据需要呈现的至少一个呈现逻辑。
接口获取子模块242,用于根据每个呈现逻辑获取每个呈现逻辑对应的视图层的界面接口。
进一步地,请参阅图11,所述呈现模块250可以包括:
设置子模块251,用于响应设置包装层的请求,在所述控制层与所述视图层的每个界面接口之间设置一包装层。
包装子模块252,用于所述包装层对所述界面接口进行包装,形成弱引用层,以使运行所述软件开发模型的计算机设备100在当所述视图层存在内存泄露时,将所述内存进行回收。
本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
综上所述,本发明实施例提供的页面逻辑控制方法及装置,该方法通过数据层获取数据;数据层将获取的数据通过数据层与控制层之间的接口协议转换为预设格式数据后传送给控制层;控制层对预设格式数据进行解析,得到与预设格式数据对应的呈现数据;控制层基于呈现数据从控制层与视图层的至少一个界面接口中查找用于显示呈现数据的界面接口,并通过查找到的界面接口将对应的呈现数据传送至视图层;视图层根据查找到的界面接口对呈现数据进行页面呈现。上述设计能够有效降低视图层和控制层之间的耦合关系,极大地提高了软件的可扩展性和可维护性。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。