元素变更通知方法、装置及终端设备与流程

文档序号:15143811发布日期:2018-08-10 20:12阅读:101来源:国知局

本发明涉及互联网技术领域,具体而言,涉及一种元素变更通知方法、装置及终端设备。



背景技术:

元素为构成应用程序的各种控件,在开发过程中有的页面通常包含较多元素,但是由于承载该页面的屏幕空间有限,进而导致各个元素之间存在重叠的问题,目前为了解决元素之间的重叠问题是通过逻辑上规定元素之间相互排斥来实现的。即是说,传统的实现元素之间相互排斥是通过直接的逻辑判定,但是元素之间还是能够进行直接的函数访问,这样导致了元素之间的耦合关系增大,导致元素的后期维护成本增加。此外,元素之间的引用关系错综复杂,非常容易引起一个元素被其他元素非法持有从而导致元素无法释放的问题,进而引起内存泄露,进一步导致元素之前的逻辑复杂,导致后期程序的维护成本大幅度增加。



技术实现要素:

本发明的目的在于提供一种元素变更通知方法,以实现元素之间相互独立,使得元素之间的耦合程度降低。

本发明的另一目的在于提供一种元素变更通知装置,以实现元素之间相互独立,使得元素之间的耦合程度降低。

本发明的另一目的在于提供一种终端设备,以实现元素之间相互独立,使得元素之间的耦合程度降低。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种元素变更通知方法,所述方法包括:定义元素的存储形式为键值对形式;获取所述元素的变更信息;将所述元素的变更信息以所述键值对形式添加到数据缓存池中;调用预定义的数据通知协议将所述元素的变更信息发送至其他元素。

第二方面,本发明实施例还提供了一种元素变更通知装置,所述装置包括:定义模块,用于定义元素的存储形式为键值对形式;第一获取模块,用于获取所述元素的变更信息;添加模块,用于将所述元素的变更信息以键值对形式添加到数据缓存池中;第一调用模块,用于调用预定义的数据通知协议将所述元素的变更信息发送至其他元素。

第三方面,本发明实施例还提供了一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序代码,所述处理器用于处理存储于所述存储器中的计算机程序代码以实现所述的元素变更通知方法。

本发明实施例提供的一种元素变更通知方法、装置及终端设备,该元素变更方法及装置应用于终端设备。该元素变更方法包括定义元素的存储形式为键值对形式,获取元素的变更信息,将元素的变更信息以键值对的形式添加到数据缓存池中,调用预定义的数据通知协议将元素的变更信息发送至其他元素。由此可见,在本方案中,若一个元素的信息有所变化,则将该元素的变更信息发送至数据缓存池中,再通过数据通知协议通知其他元素具体的变更信息,以便于其他元素针对该元素的变更信息调整业务逻辑。由于元素之间不必直接通信,进而使得元素之间能保持相互独立,降低了元素之间的耦合性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的一种终端设备的结构示意图。

图2示出了本发明实施例提供的一种元素变更通知方法的流程示意图。

图3示出了本发明实施例提供的另一种元素变更通知方法的流程示意图。

图4示出了本发明实施例提供的一种元素变更通知装置的功能模块示意图。

图示:100-终端设备;110-元素变更通知装置;120-存储器;130-存储控制器;140-处理器;150-外设接口;160-输入输出单元;170-音频单元;180-显示单元;111-定义模块;112-定义获取模块;113-添加模块;114-第一调用模块;115-第二获取模块;116-遍历模块;117-拷贝模块;118-删除模块;119-第二调用模块;121-调整模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

本发明实施例提供的一种元素变更通知方法应用于终端设备,该终端设备可以是电脑、平板电脑、手机等智能电子设备,该终端设备上通常需要运行一个应用程序或展现一个网页,本发明实施例所指的元素即为组成应用程序或网页的控件,如该控件为应用程序上的用于显示视频的视图控件、用于执行提交操作的按钮等。容易理解的,该运行于终端设备上的应用程序或网页的内容均是由多个控件协同完成,但是由于多个控件间需相互通信,即其中一个控件发生变化,另一个与该控件有关联的控件也可能发生变化,由此现目前各个控件间的耦合关系很深,不利于后期维护。

本发明实施例提供的一种元素变更通知方法,当其中一个元素将发生变更时,将该元素的变更信息发送至数据缓存池中,同时通知其他元素,则其他元素将从数据缓存池获取发生变更的元素的变更信息以及时对自身的业务逻辑进行调整。由于本方案中并没有定义元素之间的通信逻辑,而是当有元素发生变更时,将其变更信息发送至公共的数据缓存池中,并通知其他元素。其他元素自行决定是否也要做出变更,若需要做出变更,则从数据缓存池中获取发生变更的元素的变更信息对自身的业务逻辑进行调整,以实现了元素之间的相互独立,降低了元素之间的耦合关系。

请参照图1,是本发明实施例提供的一种终端设备100的结构示意图,该终端设备100包括元素变更通知装置110、存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170、显示单元180。

所述存储器120、存储控制器130、处理器140、外设接口150、输入输出单元160、音频单元170、显示单元180各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述元素变更通知装置110包括至少一个可以软件或固件(firmware)的形式存储于所述存储器120中或固化在所述终端设备100设备的操作系统(operatingsystem,os)中的软件功能模块。所述处理器140用于执行存储器120中存储的可执行模块,例如所述元素变更通知装置110包括的软件功能模块或计算机程序。

其中,存储器120可以是,但不限于,随机存取存储器(randomaccessmemory,ram),只读存储器(readonlymemory,rom),可编程只读存储器(programmableread-onlymemory,prom),可擦除只读存储器(erasableprogrammableread-onlymemory,eprom),电可擦除只读存储器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存储器120用于存储程序,所述处理器140在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的终端设备100所执行的方法可以应用于处理器140中,或者由处理器140实现。

处理器140可能是一种集成电路芯片,具有信号的处理能力。上述的处理器140可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器140也可以是任何常规的处理器140等。

所述外设接口150将各种输入/输出装置耦合至处理器140以及存储器120。在一些实施例中,外设接口150,处理器140以及存储控制器130可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

输入输出单元160用于提供给用户输入数据实现用户与所述数据采集端100的交互。所述输入输出单元160可以是,但不限于,鼠标和键盘等。

音频单元170向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。

显示单元180在终端设备100与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元180可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器140进行计算和处理。

请参照图2,是本发明实施例提供的一种元素变更通知方法的流程示意图,该方法包括:

步骤s110,定义元素的存储形式为键值对形式。

常见的数据存储是存储在基本数据类型中,该基本数据类型为整型、浮点型等。此种存储方式的优点是使用起来较方便,但是难以管理数据量大的数据。因此,本方案采用map类型的集合来对数据进行缓存,即是说通过键值对的方式对数据进行存储,键值对在数据查询上非常快,能够加大地提高数据的获取效率,同时能够封装大量的数据。

步骤s120,定义所述键值对形式的类型。

由于本方案涉及到对多重类型的数据进行缓存,则需要定义该键值对可存储数据的类型。其具体的定义方式为:list<map>datamap=newarraylist<hashmap<string,object>>,其中,string定义了键的类型,object定义了键值对中值的类型。该object类在java中是所有类的父类,根据面向对象语言的特点,该object类是可以用于存储所有类型的数据,亦即是说,该定义的键值对可以缓存任意数据类型的数据。

步骤s130,获取所述元素的变更信息。

通过publicvoidsavedata(stringkey,objectdata)函数获取元素的变更信息,该元素的变更信息可以为,但不限于,元素的位置变更信息、颜色更新信息等。再根据mapmap=newhashmap(key,data)将savedata接收的元素的变更信息传递入map对象。

步骤s140,将所述元素的变更信息以所述键值对形式添加到数据缓存池中。

具体为,由于该map对象中定义了数据的存储形式为键值对的形式,则直接通过datamap中的add方法将map对象中的元素变更信息添加到数据缓存池中。

步骤s150,调用预定义的数据通知协议将所述元素的变更信息发送至其他元素。

该预定义的数据通知协议为publicinterfaceinotificationdatachange{voidondatachanged(stringkey,objectdata);},其中,public表示该协议是一个公有协议,只有被定义成公有协议的协议才能够被其他类进行使用。interface是java中协议的关键字信息,用于定义协议使用。inotificationdatachange表示协议的名称,其用于唯一标示一个协议的内容。void表征协议方法的返回值类型,ondatachanged为协议的方法名称,key和data为协议方法的两个参数,该key参数的类型为string,该data参数的类型为object。

容易理解的,该数据通知协议中定义的参数也是键值对的形式,则在将元素的变更信息添加到数据缓存池后,将该元素的变更信息传入预定义的数据通知协议,由于数据通知协议中的参数与元素的变更信息均为键值对的形式,则使得操作更加便捷。进而数据通知协议将元素的变更信息发送至其他元素,以便于其他元素知晓。其他元素若也要发生相应变化,则从数据缓存池中获取具体的元素的变更信息以对自身的业务逻辑进行调整。

换句话说,当一个元素的信息发生变更时,将其具体的变更信息发送至数据缓存池中,另一方面调用预定义的数据通知协议通知其他元素有元素存在变化,则其他元素可根据自身需要从公共的数据缓存池中获取具体的变更信息以对自身的业务逻辑进行调整。由于元素之间并没有直接通信,故简化了元素之间的设计流程,降低了元素之间的耦合性,提高了元素的独立性。

请参照图3,是本发明实施例提供的另一种元素变更通知方法的流程示意图,该方法包括:

步骤s210,以键值对的方式获取需要删除的元素信息。

具体为,获取需要删除的元素信息,具体通过publicvoiddeldata(stringkey)获取需要删除的元素信息中的键。

步骤s220,将所述元素信息中的键在所述数据缓存池中进行遍历。

即是说,将该需要删除的元素信息的键通过for循环的方式与数据缓存池中的存储的元素信息的键进行一一比较。由于键是一个字符串,则具体是通过equals方法进行字符串的一一比较,将该数据缓存池中与元素信息的键一致的键定义为目的键。

步骤s230,若所述数据缓存池中存在于所述元素信息中的键一致的目的键,则将所述数据缓存池中与所述目的键对应的元素信息拷贝至内存。

由于数据缓存池中每个元素信息都只存储了一份,若直接删掉数据缓存池中与元素信息中的键一致的目的键对应的元素信息,则无法发送具体的删除信息告知其他元素知晓,故需先对数据缓存池中目的键对应的元素信息进行备份,具体为,将该数据缓存池中与目的键对应的元素信息拷贝至内存。

步骤s240,删除所述数据缓存池中与所述目的键对应的元素信息。

该目的键为与需删除的元素信息的键一致的键,则该目的键对应的元素信息为需删除的元素信息,进而通过remove方法将与目的键对应的元素信息从所述数据缓存池中移除。

步骤s250,调用预定义的数据通知协议将内存中存储的元素信息发送至其他元素,以告知其他元素对应的元素信息已删除。

即是说,在删除元素信息成功后,将内存中存储的元素信息发送至预定义的数据通知协议,并由预定义的数据通知协议告知其他元素。

由此可见,当需要删除其中一个元素信息时,只需要根据该元素信息中的键在数据缓存池中进行遍历,找到目的键后删除该目的键对应的元素信息即可,其他元素也可及时知道元素的删除信息。

请参照图4,是本发明实施例提供的一种元素变更通知装置110的功能模块示意图,该装置包括定义模块111、第一获取模块112、添加模块113、第一调用模块114、第二获取模块115、遍历模块116、拷贝模块117、删除模块118、第二调用模块119以及调整模块121。

定义模块111,用于定义元素的存储形式为键值对形。

在本发明实施例中,步骤s110可以由定义模块111执行。

第一获取模块112,用于获取所述元素的变更信息。

在本发明实施例中,步骤s130可以由第一获取模块112执行。

添加模块113,用于将所述元素的变更信息以键值对形式添加到数据缓存池中。

在本发明实施例中,步骤s140可以由添加模块113执行。

第一调用模块114,用于调用预定义的数据通知协议将所述元素的变更信息发送至其他元素。

在本发明实施例中,步骤s150可以由第一调用模块114执行。

第二获取模块115,用于以键值对的形式获取需要删除的元素信息。

在本发明实施例中,步骤s210可以由第二获取模块115执行。

遍历模块116,用于将所述元素信息中的键在所述数据缓存池中进行遍历。

在本发明实施例中,步骤s220可以由遍历模块116执行。

拷贝模块117,用于将所述数据缓存池中与所述目的键对应的元素信息拷贝至内存。

在本发明实施例中,步骤s230可以由拷贝模块117执行。

删除模块118,用于若所述数据缓存池中存在与所述元素信息中的键一致的目的键,则删除所述数据缓存池中与所述目的键对应的元素信息。

在本发明实施例中,步骤s240可以由删除模块118执行。

第二调用模块119,用于调用预定义的数据通知协议将内存中存储的元素信息发送至其他元素,以告知其他元素对应的元素信息已删除。

在本发明实施例中,步骤s250可以由第二调用模块119执行。

调整模块121,用于响应所述元素的变更信息调整业务逻辑。

综上所述,本发明实施例提供的一种元素变更通知方法、装置及终端设备,该元素变更方法及装置应用于终端设备。该元素变更方法包括定义元素的存储形式为键值对形式,获取元素的变更信息,将元素的变更信息以键值对的形式添加到数据缓存池中,调用预定义的数据通知协议将元素的变更信息发送至其他元素。由此可见,在本方案中,若一个元素的信息有所变化,则将该元素的变更信息发送至数据缓存池中,再通过数据通知协议通知其他元素具体的变更信息,以便于其他元素针对该元素的变更信息调整业务逻辑。由于元素之间不必直接通信,进而使得元素之间能保持相互独立,降低了元素之间的耦合性。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1