CN106873980A - 一种ui和业务逻辑分离方法和装置 - Google Patents
一种ui和业务逻辑分离方法和装置 Download PDFInfo
- Publication number
- CN106873980A CN106873980A CN201710014031.6A CN201710014031A CN106873980A CN 106873980 A CN106873980 A CN 106873980A CN 201710014031 A CN201710014031 A CN 201710014031A CN 106873980 A CN106873980 A CN 106873980A
- Authority
- CN
- China
- Prior art keywords
- module
- message
- functional
- feature
- layers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种UI和业务逻辑分离方法和装置,通过由UI层将识别出来的UI操作消息发送至消息分发模块;再由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信后,在功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;当功能状态发生变化时,由公共状态模块发送UI更新消息至UI层,实现了在UI层向业务逻辑层发送UI操作消息后,可以立刻响应新的UI操作,不需要等待设备功能执行完成,提高了UI操作的响应速率。
Description
技术领域
本发明涉及安防通信技术领域,尤其涉及一种UI和业务逻辑分离方法和装置。
背景技术
随着计算机技术的迅猛发展以及Internet进入商业和社会应用阶段,设备的种类、数量越来越多,如何利用先进的网络技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管理手段,己经成为当今社会的潮流。
设备管理系统(Equipment Management System)是将信息化了的设备技术信息与现代化管理相结合,是实现研究级管理信息化的先导。设备管理软件是设备管理模式与计算机技术结合的产物,设备管理的对象是各种各样的设备。
然而,现有设备管理软件通过UI界面对设备进行功能操作时,有些设备功能执行时间较长,如果UI界面等待这些设备功能执行完成后才能响应其他UI操作,则会降低UI响应速率,
发明内容
有鉴于此,本发明实施例提供了一种UI和业务逻辑分离方法和装置,以解决现有设备管理软件中UI界面需要等待设备功能执行完成后才可以响应其他UI操作,UI响应速率慢的问题。
第一方面,本发明实施例提供了一种UI和业务逻辑分离方法,所述方法包括:
UI层将识别出来的UI操作消息发送至消息分发模块;
消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;
功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作;
功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;
当修改后的功能状态与UI层的当前功能状态不一致时,公共状态模块发送UI更新消息至UI层。
第二方面,本发明实施例提供了一种UI和业务逻辑分离装置,所述装置包括UI操作消息发送单元、分发单元、调用单元、修改单元和UI更新消息发送单元;
其中,UI操作消息发送单元,用于由UI层将识别出来的UI操作消息发送至消息分发模块;
分发单元,用于由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;
调用单元,用于由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作;
修改单元,用于由功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;
UI更新消息发送单元,用于当修改后的功能状态与UI层的当前功能状态不一致时,由公共状态模块发送UI更新消息至UI层。
在本发明实施例中,通过由UI层将识别出来的UI操作消息发送至消息分发模块;再由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信后,在功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;当功能状态发生变化时,由公共状态模块发送UI更新消息至UI层,实现了在UI层向业务逻辑层发送UI操作消息后,可以立刻响应新的UI操作,不需要等待设备功能执行完成,提高了UI操作的响应速率。
附图说明
图1是本发明实施例提供的一种UI和业务逻辑分离方法的实现流程图;
图2是本发明实施例提供的一种UI层将识别出来的UI操作消息发送至消
息分发模块的方法的具体实现流程图;
图3是本发明实施例提供的一种消息分发模块根据从UI层获取的UI操作
消息确定对应的功能消息,并分发功能消息至对应的功能模块中的方法的
具体实现流程图;
图4是本发明实施例提供的一种消息分发模块根据预设规则将UI操作消息
分解成与主功能模块和次功能模块对应的功能消息的方法的实现流程图;
图5是本发明实施例提供的一种UI和业务逻辑分离装置的结构框图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应理解,在本发明各个实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
以下结合具体实施例对本发明的实现进行详细描述:
图1示出了本发明实施例提供的一种UI和业务逻辑分离方法的实现流程,详述如下:
在步骤S101中,UI层将识别出来的UI操作消息发送至消息分发模块。
在本发明实施例中,业务逻辑层包括消息分发模块和功能模块其中,所述功能模块至少为一个;当所述功能模块大于一个时,所述功能模块并行处理由消息分发模块分发过来的功能消息;在这里,上述功能模块包括但不限于预览功能模块、录像功能模块、控球功能模块、报警功能模块和上墙功能模块。
在本发明实施例中,为了进一步实现将UI层和业务逻辑层分离开来,将UI层和业务逻辑层中具有相同状态特征的功能状态都纳入到公共状态模块中,以供UI层和业务逻辑层调用,在这里,UI层和业务逻辑层通过接口函数的方式访问公共状态模块确定当前要操作的功能模块的功能状态,即所述公共状态模块中包含有由UI层和业务逻辑层中具有相同特征的功能状态的集合,UI层和业务逻辑层通过接口函数访问所述公共状态模块。
具体地,UI操作指令中包含有功能模块的模块标识,根据该模块标识调用接口函数可以从公共状态模块中获取对应功能模块的当前功能状态。
具体地,上述步骤S101的具体实现流程如图2所示:
在步骤S201中,UI层接收用户输入的UI操作指令,识别出所述UI操作指令中包含的模块标识和功能操作。
在本发明实施例中,当用户在UI界面进行操作时,UI层接收用户输入的UI操作指令,例如用户使用鼠标点击或者触摸点击等方式点击UI界面中的录像播放按钮时,UI层识别出用户当前点击的是录像功能模块中的播放/暂停按钮,这时,UI操作指令中包含的模块标识为录像功能模块标识,UI操作指令中包含的功能操作为播放操作或者暂停操作。
在步骤S202中,UI层调用接口函数从公共状态模块中查询与所述UI操作指令关联的功能模块的功能状态,根据所述功能状态确定所述UI操作指令对应的功能操作和与所述功能操作对应的功能状态。
上述与UI操作指令关联的功能模块的功能状态,具体是指与UI操作指令中的模块标识对应的功能模块的当前功能状态,例如,当前用户是要进行录像回放,那么,当用户在UI界面进行操作时,UI操作指令中包含有录像功能模块的模块标识,在公共状态模块中记录有该录像功能模块的当前功能状态,根据该模块标识调用接口函数就可以从公共状态模块中查询到录像功能模块的当前功能状态,即该录像功能模块当前处于播放状态还是处于暂停状态,在确定该录像功能模块的当前功能状态后,即在确定录像功能模块的当前功能状态时播放状态还是暂停状态后,就可以确定UI操作指令对应的功能操作是播放操作还是暂停操作,以及与该功能操作对应的功能状态为播放状态还是暂停状态,例如,当录像功能模块的当前功能状态为暂停状态时,UI操作指令对应的功能操作为播放操作,与该播放操作对应的功能状态为播放状态。
具体地,在UI层识别出所述UI操作指令中包含的模块标识和功能操作后,当UI操作指令中包含的功能操作的操作数量大于1时,即UI操作指令中包含的功能操作有多个操作动作时,需要确定UI操作指令对应的功能操作具体是哪个功能操作,这时,UI层调用接口函数从公共状态模块中查询与所述UI操作指令关联的功能模块的当前功能状态,当确定与所述UI操作指令关联的功能模块的当前功能状态后,根据当前功能状态确定所述UI操作指令对应的功能操作,例如,当确定与当前UI操作指令关联的录像功能模块的当前功能状态为暂停状态时,那么,UI操作指令对应的功能操作为播放操作,与该播放操作对应的功能状态为播放状态。
在步骤S203中,UI层将包含所述模块标识、所述功能操作和与所述功能操作对应的功能状态的UI操作消息发送至消息分发模块。
在本发明实施例中,当UI层调用接口函数从公共状态模块中查询到与UI操作指令对应的功能操作和与功能操作对应的功能状态后,公共状态模块将包含与UI操作指令对应的功能操作和与功能操作对应的功能状态的消息反馈回来给UI层,UI层根据反馈回来的消息生成对应的UI操作消息后,UI层将该UI操作消息发送至业务逻辑层中的消息分发模块;其中,该UI操作消息包括模块标识、与UI操作指令对应的功能操作和与该功能操作对应的功能状态。
在本发明实施例中,当UI层根据当前功能状态确定UI操作指令对应的功能操作后,UI层向业务逻辑层中的消息分发模块发送包含所述模块标识、所述功能操作和与所述功能操作对应的功能状态的UI操作消息,例如,当UI层根据当前功能状态确定UI操作指令对应的功能操作为播放操作,和与所述功能操作对应的功能状态为播放状态时,UI层向业务逻辑层中的消息分发模块发送包含录像功能模块标识、播放操作和播放状态的UI操作消息,UI层在发送该UI操作消息后,可以立刻响应新的UI操作指令,而不必等待设备将上一个UI操作消息执行完成后才可以响应新的UI操作指令,减少了设备等待的时间,避免在进行软件操作时出现界面卡住的情况,有效提高了UI的响应效率。
在步骤S102中,消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中。
在本发明实施例中,UI操作消息中包含有模块标识、功能操作和与所述功能操作对应的功能状态。
具体地,上述步骤S102的具体实现流程如图3所示:
在步骤S301中,消息分发模块在获取UI层发送的UI操作消息后,根据所述UI操作消息调用接口函数从公共状态模块中查询所述模块标识所属的主功能模块是否存在相互关联的次功能模块。
在本发明实施例中,上述模块标识所属的主功能模块是否存在相互关联的次功能模块,具体是指模块标识所属的功能模块中存在依赖关系的功能模块,例如,在预览状态下打开正在播放的录像视频的音频输出,这时预览功能模块中存在依赖关系的录像功能模块。
具体地,上述主功能模块具体为存在依赖关系的功能模块中处于主导地位的功能模块,次功能模块为存在依赖关系的功能模块中处于次要地位的功能模块,例如,预览状态下的录像功能模块,这时,预览功能模块处于主导地位,录像功能模块处于次要地位。
在步骤S302中,如果不存在相互关联的次功能模块,消息分发模块直接分发所述UI操作消息至所述模块标识所属的主功能模块中。
在本发明实施例中,在确定不存在相互关联的次功能模块后,消息分发模块就直接分发从UI层获取的UI操作消息至模块标识所述主功能模块中。
在一个应用场景中,用户在UI界面中点击当前显示的录像视频界面中的播放/暂停按钮时,UI层识别出用户点击的UI操作指令中的模块标识为视频功能模块标识,为区分UI操作指令中的功能操作具体为播放操作还是暂停操作,UI层调用接口函数查询公共状态模块中的视频功能模块的当前功能状态时播放状态还是暂停状态,如果时暂停状态,那么UI层识别出用户要进行的UI操作为播放视频,向业务逻辑层的消息分发模块发送包含视频功能模块标识和播放视频的UI操作消息。
消息分发模块在获取到该包含视频功能模块标识和播放视频的UI操作消息后,调用接口函数从公共状态模块中查询到该视频功能模块不存在相互关联的次功能模块,这时,消息分发模块直接将从UI层获取的UI操作消息分发给录像功能模块。
在步骤S303中,如果存在相互关联的次功能模块,消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息,并将分解后的功能消息对应分发至所述主功能模块和所述次功能模块中。
具体地,上述预先设置的规则具体为冲突规则,步骤S303中消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息的具体实现流程如图4所示:
在步骤S401中,消息分发模块调用接口函数查询所述次功能模块的当前功能状态。
在步骤S402中,消息分发模块确定所述次功能模块的当前功能状态与所述UI操作消息中包含的与所述功能操作对应的功能状态是否存在冲突。
例如,当用户UI操作消息中包含的功能操作为音频输出的打开功能操作,与音频输出的打开功能操作对应的功能状态是音频输出打开状态时,消息分发模块判断作为次功能模块的录像功能模块的当前功能状态如音频输出打开状态或音频输出关闭状态与音频输出的打开功能操作对应的功能状态是音频输出打开状态是否存在冲突。
在步骤S403中,如果存在冲突,消息分发模块生成包含与所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照预设优先级将所述UI操作消息和所述次功能消息分发至对应的主功能模块和次功能模块中。
在本发明实施例中,上述预设优先级为优先发送次功能消息至次功能模块中,再发送UI操作消息至主功能模块中。
进一步地,如果不存在冲突,则不向次功能模块执行任何操作,保留该次功能模块的当前功能状态。
在一个应用场景中,用户在UI界面显示的预览状态下点击音频输出打开时,UI层识别出用户点击的UI操作指令中的模块标识为预览功能模块标识后,调用接口函数查询公共状态中的预览功能模块中的音频输出的当前播放状态为关闭状态,这时,UI层向业务逻辑层中的消息分发模块发送包含预览功能模块标识和打开音频输出的UI操作消息。
消息分发模块在获取到该包含预览功能模块标识和打开音频输出的UI操作消息后,调用接口函数从公共状态模块中查询到有与该预览功能模块存在关联的录像功能模块,这时,消息分发模块调用接口函数从公共状态模块中查询到该录像功能模块中的音频输出为打开状态,由消息分发模块生成包含关闭音频输出的次功能消息,这时,UI操作消息相当于是预览功能模块的主功能消息,消息分发模块按照预设优先级将主功能消息和次功能消息分发至对应的主功能模块和次功能模块中。
在步骤S103中,功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作。
在本发明实施例中,功能模块在获取到由消息分发模块分发的对应的功能消息后,从设备层中调用与该功能消息对应的接口函数和设备层进行通信,对设备执行功能消息对应的业务逻辑操作,例如,录像功能模块调用设备层的录像播放函数对设备进行录像播放。
在一个应用场景中,预览功能模块中关联的次功能模块为多个录像功能模块,在消息分发模块给录像功能模块分发关闭音频输出的功能消息后,消息分发模块按时序继续调用接口函数查询公共状态模块中的录像功能模块的音频输出状态,直到预览功能模块中关联的所有录像功能模块的音频输出状态均为关闭状态后,才将作为预览功能模块的主功能消息分发给预览模块,以避免预览功能模块下出现音频异常的情况,给用户更好的操作体验。
在步骤S104中,功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态。
在一个应用场景中,录像功能模块调用设备层的录像播放函数对设备进行录像播放后,再调用接口函数修改公共状态模块中的录像功能状态为播放。
在另一个应用场景中,录像功能模块在调用设备层的关闭音频输出函数,关闭设备的音频输出后,调用接口函数修改公共状态模块中的录像功能模块的音频输出状态为关闭。
在步骤S105中,当修改后的功能状态与UI层的当前功能状态不一致时,公共状态模块发送UI更新消息至UI层。
在本发明实施例中,当功能模块的功能状态发生变化时,即修改后的功能状态与UI层的当前功能状态不一致时,公共状态模块向UI层发送UI更新消息,UI层根据接收到UI更新消息对UI进行相应的显示更新,例如,公共状态模块发送更新录像功能状态的UI更新消息给UI层,UI层接收到UI更新消息后就更新录像功能模块中播放/暂停按钮的UI显示。
在本发明实施例中,通过由UI层将识别出来的UI操作消息发送至消息分发模块;再由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信后,在功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;当功能状态发生变化时,由公共状态模块发送UI更新消息至UI层,实现了在UI层向业务逻辑层发送UI操作消息后,可以立刻响应新的UI操作,不需要等待设备功能执行完成,提高了UI操作的响应速率。
本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,上述的存储介质,如ROM/RAM、磁盘或光盘等。
图5示出了本发明实施例提供的一种UI和业务逻辑分离装置5的具体结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
本发明实施例提供的一种UI和业务逻辑分离装置5,包括UI操作消息发送单元51、分发单元52、调用单元53、修改单元54和UI更新消息发送单元55。
其中,UI操作消息发送单元51,用于由UI层将识别出来的UI操作消息发送至消息分发模块;
进一步地,所述UI操作消息发送单元51包括:
指令识别子单元,用于由UI层接收用户输入的UI操作指令,识别出所述UI操作指令中包含的模块标识和功能操作;
状态查询子单元,用于由UI层调用接口函数从公共状态模块中查询与所述UI操作指令关联的功能模块的功能状态,根据所述功能状态确定所述UI操作指令对应的功能操作和与所述功能操作对应的功能状态;
UI操作消息发送子单元,用于由UI层将包含所述模块标识、所述功能操作和与所述功能操作对应的功能状态的UI操作消息发送至消息分发模块。
分发单元52,用于由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;
进一步地,所述分发单元52包括:
关联查询子单元,用于由消息分发模块在获取UI层发送的UI操作消息后,根据所述UI操作消息调用接口函数从公共状态模块中查询所述模块标识所属的主功能模块是否存在相互关联的次功能模块;
第一分发子单元,用于如果不存在相互关联的次功能模块,由消息分发模块直接分发所述UI操作消息至所述模块标识所属的主功能模块中;
第二分发子单元,用于如果存在相互关联的次功能模块,由消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息,并将分解后的功能消息对应分发至所述主功能模块和所述次功能模块中。
进一步地,所述第二分发子单元包括:
关联状态查询子单元,用于由消息分发模块调用接口函数查询所述次功能模块的当前功能状态;
冲突确定子单元,用于由消息分发模块确定所述次功能模块的当前功能状态与所述UI操作消息中包含的与所述功能操作对应的功能状态是否存在冲突;
第三分发子单元,用于如果存在冲突,由消息分发模块生成包含与所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照预设优先级将所述UI操作消息和所述次功能消息分发至对应的主功能模块和次功能模块中。
调用单元53,用于由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作;
修改单元54,用于由功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;
UI更新消息发送单元55,用于当修改后的功能状态与UI层的当前功能状态不一致时,由公共状态模块发送UI更新消息至UI层。
具体地,所述功能模块至少为一个;当所述功能模块大于一个时,所述功能模块并行处理由消息分发模块分发过来的功能消息。
在本发明实施例中,通过由UI层将识别出来的UI操作消息发送至消息分发模块;再由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信后,在功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;当功能状态发生变化时,由公共状态模块发送UI更新消息至UI层,实现了在UI层向业务逻辑层发送UI操作消息后,可以立刻响应新的UI操作,不需要等待设备功能执行完成,提高了UI操作的响应速率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同装置来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述装置实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述装置的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上上述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到状态或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应上述以权利要求的保护范围为准。
Claims (10)
1.一种UI和业务逻辑分离方法,其特征在于,所述方法包括:
UI层将识别出来的UI操作消息发送至消息分发模块;
消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;
功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作;
功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态
当修改后的功能状态与UI层的当前功能状态不一致时,公共状态模块发送UI更新消息至UI层。
2.如权利要求1所述的方法,其特征在于,所述UI层将识别出来的UI操作消息发送至消息分发模块的步骤,包括:
UI层接收用户输入的UI操作指令,识别出所述UI操作指令中包含的模块标识和功能操作;
UI层调用接口函数从公共状态模块中查询与所述UI操作指令关联的功能模块的功能状态,根据所述功能状态确定所述UI操作指令对应的功能操作和与所述功能操作对应的功能状态;
UI层将包含所述模块标识、所述功能操作和与所述功能操作对应的功能状态的UI操作消息发送至消息分发模块。
3.如权利要求1所述的方法,其特征在于,所述功能模块至少为一个;当所述功能模块大于一个时,所述功能模块并行处理由消息分发模块分发过来的功能消息。
4.如权利要求1或3所述的方法,其特征在于,所述消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中的步骤,包括:
消息分发模块在获取UI层发送的UI操作消息后,根据所述UI操作消息调用接口函数从公共状态模块中查询所述模块标识所属的主功能模块是否存在相互关联的次功能模块;
如果不存在相互关联的次功能模块,消息分发模块直接分发所述UI操作消息至所述模块标识所属的主功能模块中;
如果存在相互关联的次功能模块,消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息,并将分解后的功能消息对应分发至所述主功能模块和所述次功能模块中。
5.如权利要求4所述的方法,其特征在于,所述消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息的步骤,包括:
消息分发模块调用接口函数查询所述次功能模块的当前功能状态;
消息分发模块确定所述次功能模块的当前功能状态与所述UI操作消息中包含的与所述功能操作对应的功能状态是否存在冲突;
如果存在冲突,消息分发模块生成包含与所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照预设优先级将所述UI操作消息和所述次功能消息分发至对应的主功能模块和次功能模块中。
6.一种UI和业务逻辑分离装置,其特征在于,所述装置包括:
UI操作消息发送单元,用于由UI层将识别出来的UI操作消息发送至消息分发模块;
分发单元,用于由消息分发模块根据从UI层获取的UI操作消息确定对应的功能消息,并分发所述功能消息至对应的功能模块中;
调用单元,用于由功能模块根据从消息分发模块获取的功能消息从设备层中调用对应的接口函数和设备进行通信,功能模块执行所述功能消息对应的业务逻辑操作;
修改单元,用于由功能模块在执行完所述功能消息对应的业务逻辑操作后,调用接口函数修改公共状态模块中对应的功能状态;
UI更新消息发送单元,用于当修改后的功能状态与UI层的当前功能状态不一致时,由公共状态模块发送UI更新消息至UI层。
7.如权利要求6所述的装置,其特征在于,所述UI操作消息发送单元包括:
指令识别子单元,用于由UI层接收用户输入的UI操作指令,识别出所述UI操作指令中包含的模块标识和功能操作;
状态查询子单元,用于由UI层调用接口函数从公共状态模块中查询与所述UI操作指令关联的功能模块的功能状态,根据所述功能状态确定所述UI操作指令对应的功能操作和与所述功能操作对应的功能状态;
UI操作消息发送子单元,用于由UI层将包含所述模块标识、所述功能操作和与所述功能操作对应的功能状态的UI操作消息发送至消息分发模块。
8.如权利要求6所述的装置,其特征在于,所述功能模块至少为一个;当所述功能模块大于一个时,所述功能模块并行处理由消息分发模块分发过来的功能消息。
9.如权利要求6或8所述的装置,其特征在于,所述分发单元包括:
关联查询子单元,用于由消息分发模块在获取UI层发送的UI操作消息后,根据所述UI操作消息调用接口函数从公共状态模块中查询所述模块标识所属的主功能模块是否存在相互关联的次功能模块;
第一分发子单元,用于如果不存在相互关联的次功能模块,由消息分发模块直接分发所述UI操作消息至所述模块标识所属的主功能模块中;
第二分发子单元,用于如果存在相互关联的次功能模块,由消息分发模块根据预设规则将所述UI操作消息分解成与所述主功能模块和次功能模块对应的功能消息,并将分解后的功能消息对应分发至所述主功能模块和所述次功能模块中。
10.如权利要求9所述的装置,其特征在于,所述第二分发子单元包括:
关联状态查询子单元,用于由消息分发模块调用接口函数查询所述次功能模块的当前功能状态;
冲突确定子单元,用于由消息分发模块确定所述次功能模块的当前功能状态与所述UI操作消息中包含的与所述功能操作对应的功能状态是否存在冲突;
第三分发子单元,用于如果存在冲突,由消息分发模块生成包含与所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照预设优先级将所述UI操作消息和所述次功能消息分发至对应的主功能模块和次功能模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710014031.6A CN106873980A (zh) | 2017-01-09 | 2017-01-09 | 一种ui和业务逻辑分离方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710014031.6A CN106873980A (zh) | 2017-01-09 | 2017-01-09 | 一种ui和业务逻辑分离方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106873980A true CN106873980A (zh) | 2017-06-20 |
Family
ID=59164784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710014031.6A Pending CN106873980A (zh) | 2017-01-09 | 2017-01-09 | 一种ui和业务逻辑分离方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873980A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797803A (zh) * | 2017-11-03 | 2018-03-13 | 深圳市沃特沃德股份有限公司 | 车载系统中的业务逻辑封装方法及装置 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
CN112000420A (zh) * | 2020-11-02 | 2020-11-27 | 武汉中科通达高新技术股份有限公司 | 一种数据处理方法和装置 |
CN112114777A (zh) * | 2020-09-09 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | 一种atmc应用软件开发方法、智能终端、存储介质 |
CN113918246A (zh) * | 2021-10-27 | 2022-01-11 | Oppo广东移动通信有限公司 | 功能控制方法、功能控制装置、存储介质与电子设备 |
CN114327466A (zh) * | 2022-01-30 | 2022-04-12 | 重庆长安汽车股份有限公司 | 一种车载app模块间消息解耦的实现方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128136A1 (en) * | 2002-09-20 | 2004-07-01 | Irani Pourang Polad | Internet voice browser |
CN1909685A (zh) * | 2006-07-18 | 2007-02-07 | 华为技术有限公司 | 一种业务平台和门户分离的实现方法和系统 |
CN101685392A (zh) * | 2008-09-27 | 2010-03-31 | 盛乐信息技术(上海)有限公司 | 实现用户界面与业务逻辑分离的装置 |
CN101872305A (zh) * | 2010-06-08 | 2010-10-27 | 用友软件股份有限公司 | Ui表现和业务逻辑分离方法和系统 |
-
2017
- 2017-01-09 CN CN201710014031.6A patent/CN106873980A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128136A1 (en) * | 2002-09-20 | 2004-07-01 | Irani Pourang Polad | Internet voice browser |
CN1909685A (zh) * | 2006-07-18 | 2007-02-07 | 华为技术有限公司 | 一种业务平台和门户分离的实现方法和系统 |
CN101685392A (zh) * | 2008-09-27 | 2010-03-31 | 盛乐信息技术(上海)有限公司 | 实现用户界面与业务逻辑分离的装置 |
CN101872305A (zh) * | 2010-06-08 | 2010-10-27 | 用友软件股份有限公司 | Ui表现和业务逻辑分离方法和系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107797803A (zh) * | 2017-11-03 | 2018-03-13 | 深圳市沃特沃德股份有限公司 | 车载系统中的业务逻辑封装方法及装置 |
WO2019085036A1 (zh) * | 2017-11-03 | 2019-05-09 | 深圳市沃特沃德股份有限公司 | 车载系统中的业务逻辑封装方法及装置 |
CN109460250A (zh) * | 2018-09-25 | 2019-03-12 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
CN109460250B (zh) * | 2018-09-25 | 2022-03-08 | 平安科技(深圳)有限公司 | 一种应用程序的生成方法及设备 |
CN112114777A (zh) * | 2020-09-09 | 2020-12-22 | 深圳市紫金支点技术股份有限公司 | 一种atmc应用软件开发方法、智能终端、存储介质 |
CN112000420A (zh) * | 2020-11-02 | 2020-11-27 | 武汉中科通达高新技术股份有限公司 | 一种数据处理方法和装置 |
CN113918246A (zh) * | 2021-10-27 | 2022-01-11 | Oppo广东移动通信有限公司 | 功能控制方法、功能控制装置、存储介质与电子设备 |
CN114327466A (zh) * | 2022-01-30 | 2022-04-12 | 重庆长安汽车股份有限公司 | 一种车载app模块间消息解耦的实现方法及系统 |
CN114327466B (zh) * | 2022-01-30 | 2024-05-17 | 重庆长安汽车股份有限公司 | 一种车载app模块间消息解耦的实现方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106873980A (zh) | 一种ui和业务逻辑分离方法和装置 | |
CN103891209B (zh) | 网络控制系统中的控制器 | |
CN103955405B (zh) | 一种应用管理方法及其装置 | |
CN102684970B (zh) | 瘦客户端环境提供系统、服务器和瘦客户端环境管理方法 | |
CN107395658A (zh) | 离线对等辅助通知传输 | |
CN106547578A (zh) | 终端应用app的加载方法及装置 | |
CN108990110A (zh) | 网络流量管理方法、装置、存储介质及终端 | |
CN104038444B (zh) | 一种资源分配的方法、设备及系统 | |
CN107181978A (zh) | 一种弹幕处理方法及装置 | |
CN107333095A (zh) | 媒体资源的处理系统 | |
CN109471546A (zh) | 一种kvm指挥调度的方法、系统及存储介质 | |
CN103731562B (zh) | 为智能设备自适应匹配蓝牙设备的方法和装置 | |
CN107172196A (zh) | 一种业务互动方法、装置和系统 | |
CN110007950A (zh) | 一种应用程序接口的管理方法、装置及服务器 | |
CN107147945A (zh) | 多媒体资源播放系统、方法及装置 | |
CN108255585A (zh) | Sdk异常控制及应用程序运行方法、装置及其设备 | |
CN102364966B (zh) | 一种无线通信终端及其短信处理方法、系统 | |
CN110221759A (zh) | 一种元素拖拽方法、装置、存储介质及交互智能平板 | |
CN107147562A (zh) | 消息处理方法和装置 | |
CN106993020A (zh) | 基于虚拟化技术面向多网络环境的远程视音频编辑方法 | |
CN101084631A (zh) | 用于多重显示由独立频道组成的内容信息的移动终端和方法,以及记录有用于执行该方法的程序的计算机可读记录介质 | |
CN103914286B (zh) | 用户界面中标签页的管理方法和管理器 | |
CN111459758A (zh) | 一种应用信息的显示方法、装置、电子设备及存储介质 | |
CN105991407A (zh) | 一种消息处理方法、装置及处理服务器 | |
CN105903191A (zh) | 跨终端的数据处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |