一种组件间的通信交互方法和装置与流程

文档序号:13813055阅读:200来源:国知局
本发明涉及计算机
技术领域
,特别涉及一种组件间的通信交互方法和装置。
背景技术
:随着移动终端的发展,各种应用的功能和界面也愈发丰富,在实际应用场景中,经常存在不同组件间的相互调用。因此,组件间的通信交互成为影响应用功能的重要因素。现有技术中,任意两个组件间一般直接互相调用,例如,组件1和组件2存在共有数据,当组件1中的共有数据发生变化时,组件1通知组件2,对其中的共有数据进行更新。但是,该方法导致组件间的耦合度较高。技术实现要素:本发明实施例提供了一种组件间的通信交互方法和装置,能够降低组件间的耦合度。第一方面,本发明实施例提供了一种组件间的通信交互方法,包括:存储共有数据标识、与所述共有数据标识相对应的共有数据、与所述共有数据相关联的至少两个组件标识;还包括:接收当前组件发送的动作通知,其中,所述动作通知中包括:当前组件标识、当前共有数据标识和数据更改规则;根据所述共有数据标识、与所述共有数据标识相对应的共有数据,确定与所述当前共有数据标识相对应的当前共有数据;根据所述数据更改规则对所述当前共有数据进行更改,生成目标共有数据;根据与所述共有数据相关联的至少两个组件标识和所述当前组件标识,确定与所述目标共有数据相关联的至少一个关联组件,其中,所述至少一个关联组件中不包括所述当前组件;将所述目标共有数据发送给所述至少一个关联组件。优选地,在所述接收当前组件发送的动作通知之后,在所述确定与所述当前共有数据标识相对应的当前共有数据之前,进一步包括:判断所述至少两个组件标识中是否包括所述当前组件标识,如果是,执行所述根据所述共有数据标识、与所述共有数据标识相对应的共有数据,确定与所述当前共有数据标识相对应的当前共有数据,否则,终止当前流程。第二方面,本发明实施例提供了一种组件间的通信交互装置,包括:存储单元,用于存储共有数据标识、与所述共有数据标识相对应的共有数据、与所述共有数据相关联的至少两个组件标识;接收单元,用于接收当前组件发送的动作通知,其中,所述动作通知中包括:当前组件标识、当前共有数据标识和数据更改规则;更改单元,用于根据所述存储单元存储到所述共有数据标识、与所述共有数据标识相对应的共有数据,确定与所述接收单元接收到的所述当前共有数据标识相对应的当前共有数据;根据所述数据更改规则对所述当前共有数据进行更改,生成目标共有数据;根据与所述共有数据相关联的至少两个组件标识和所述当前组件标识,确定与所述目标共有数据相关联的至少一个关联组件,其中,所述至少一个关联组件中不包括所述当前组件;通信单元,用于将所述更改单元生成的所述目标共有数据发送给所述至少一个关联组件。优选地,进一步包括:判断单元,用于判断所述存储单元存储的所述至少两个组件标识中是否包括所述接收单元接收到的所述当前组件标识,如果是,触发所述更改单元,否则,终止当前流程。第三方面,本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行上述任一实施例所述的方法。第四方面,本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行上述任一实施例所述的方法。本发明实施例提供了一种组件间的通信交互方法和装置,其中,该方法能够抽象出组件间的共有数据、并存储与共有数据相关联的至少两个组件标识,当当前组件中的目标共有数据发生变化时,可以根据共有数据与组件标识的对应关系,确定关联组件,并将目标共有数据发送给关联组件。该方法避免组件间直接进行交互,能够降低组件间的耦合度。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明一个实施例提供的一种组件间的通信交互方法的流程图;图2是本发明另一个实施例提供的一种组件间的通信交互方法的流程图;图3是本发明一个实施例提供的一种组件间的通信交互装置的结构示意图;图4是本发明另一个实施例提供的一种组件间的通信交互装置的结构示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,本发明实施例提供了一种组件间的通信交互方法,该方法可以包括以下步骤:步骤101:存储共有数据标识、与共有数据标识相对应的共有数据、与共有数据相关联的至少两个组件标识;步骤102:接收当前组件发送的动作通知,其中,动作通知中包括:当前组件标识、当前共有数据标识和数据更改规则;步骤103:根据共有数据标识、与共有数据标识相对应的共有数据,确定与当前共有数据标识相对应的当前共有数据;步骤104:根据数据更改规则对当前共有数据进行更改,生成目标共有数据;步骤105:根据与共有数据相关联的至少两个组件标识和当前组件标识,确定与目标共有数据相关联的至少一个关联组件,其中,至少一个关联组件中不包括当前组件;步骤106:将目标共有数据发送给至少一个关联组件。该方法能够抽象出组件间的共有数据、并存储与共有数据相关联的至少两个组件标识,当当前组件中的目标共有数据发生变化时,可以根据共有数据与组件标识的对应关系,确定关联组件,并将目标共有数据发送给关联组件。该方法避免组件间直接进行交互,能够降低组件间的耦合度。在本发明的一个实施例中,为了对当前组件发送的动作通知进行过滤,在接收当前组件发送的动作通知之后,在确定与当前共有数据标识相对应的当前共有数据之前,进一步包括:判断至少两个组件标识中是否包括当前组件标识,如果是,执行根据共有数据标识、与共有数据标识相对应的共有数据,确定与当前共有数据标识相对应的当前共有数据,否则,终止当前流程。当存储有当前组件标识时,确定当前组件为合法组件,可以通过该方法进行组件间的通信交互。如图2所示,本发明以三个组件间的通信交互为例,对组件间的通信交互方法进行详细的说明,该方法包括以下步骤:步骤201:存储共有数据标识、与共有数据标识相对应的共有数据、与共有数据相关联的至少两个组件标识。存储的共有数据标识、与共有数据标识相对应的共有数据、与共有数据相关联的至少两个组件标识如表1所示。表1共有数据标识共有数据组件标识001xa、b002ya、b、c003za步骤202:接收当前组件发送的动作通知,其中,动作通知中包括:当前组件标识、当前共有数据标识和数据更改规则。以当前组件为a为例,a中的共有数据发生更改,a发送动作通知,动作通知中包括:当前组件标识a、当前共有数据标识001和数据更改规则m。其中,数据更改规则m为动作产生的共有数据x的变化,例如,将共有数据x更改为w。步骤203:判断至少两个组件标识中是否包括当前组件标识,如果是,执行步骤204,否则,终止当前流程。当前组件标识为a,存在于表1的组件标识中。步骤204:根据共有数据标识、与共有数据标识相对应的共有数据,确定与当前共有数据标识相对应的当前共有数据。根据表1确定当前共有数据x。步骤205:根据数据更改规则对当前共有数据进行更改,生成目标共有数据。将共有数据x更改为w,则目标共有数据为w。步骤206:根据与共有数据相关联的至少两个组件标识和当前组件标识,确定与目标共有数据相关联的至少一个关联组件,其中,至少一个关联组件中不包括当前组件。将与共有数据相关联的组件标识中除当前组件标识外的组件标识对应的组件作为关联组件,即b。步骤207:将目标共有数据发送给至少一个关联组件。将目标共有数据w发送给b。组件根据数据的变化进行差异操作,确定当前界面是否需要变化(刷新或局部刷新或不做处理)。以下是实现该方法的部分代码:(1)数据存储(2)组件初始化(3)动作管理器(4)事件管理器//初始化事件管理器classeventmangerextendieventmanger{constructor(){super()}//action动作触发trigger(action,data){switch(type){case‘ui_one_click’:datacontainer.removeitem();datacontainer.notify();}}}如图3所示,本发明实施例提供了一种组件间的通信交互装置,包括:存储单元301,用于存储共有数据标识、与共有数据标识相对应的共有数据、与共有数据相关联的至少两个组件标识;接收单元302,用于接收当前组件发送的动作通知,其中,动作通知中包括:当前组件标识、当前共有数据标识和数据更改规则;更改单元303,用于根据存储单元301存储到共有数据标识、与共有数据标识相对应的共有数据,确定与接收单元302接收到的当前共有数据标识相对应的当前共有数据;根据数据更改规则对当前共有数据进行更改,生成目标共有数据;根据与共有数据相关联的至少两个组件标识和当前组件标识,确定与目标共有数据相关联的至少一个关联组件,其中,至少一个关联组件中不包括当前组件;通信单元304,用于将更改单元303生成的目标共有数据发送给至少一个关联组件。如图4所示,该装置还包括:判断单元305,用于判断存储单元301存储的至少两个组件标识中是否包括接收单元302接收到的当前组件标识,如果是,触发更改单元303,否则,终止当前流程。上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行执行指令时,存储控制器执行上述任一实施例中的方法。本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;存储器用于存储执行指令,处理器与存储器通过总线连接,当存储控制器运行时,处理器执行存储器存储的执行指令,以使存储控制器执行上述任一实施例中的方法。综上,本发明各个实施例至少具有如下效果:1、在本发明实施例中,该方法能够抽象出组件间的共有数据、并存储与共有数据相关联的至少两个组件标识,当当前组件中的目标共有数据发生变化时,可以根据共有数据与组件标识的对应关系,确定关联组件,并将目标共有数据发送给关联组件。该方法避免组件间直接进行交互,能够降低组件间的耦合度。需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1