策略执行方法、装置及系统的制作方法

文档序号:6539120阅读:178来源:国知局
策略执行方法、装置及系统的制作方法
【专利摘要】本发明公开了一种策略执行方法、装置及系统,属于计算机领域。所述方法包括:接收预定事件的标识以及与预定事件相对应的策略参数;根据预先建立的预定事件的标识与响应策略之间的对应关系查询响应策略;向响应策略对应的观察者装置发送执行通知,由观察者装置根据策略参数执行响应策略。本发明通过在接收预定事件的标识以及与该预定事件相对应的策略参数后,查询对应的响应策略,并向观察者装置发送包含有该策略参数和该响应策略,由观察者装置根据该策略参数执行该响应策略,不解决了现有技术中增加系统开销的问题以及观察者装置的代码结构复杂的问题,达到提高系统性能和观察者代码可读性和可维护性的效果。
【专利说明】策略执行方法、装置及系统
【技术领域】
[0001]本发明涉及计算机领域,特别涉及一种策略执行方法、装置及系统。
【背景技术】
[0002]观察者模式是软件设计模式的一种。在观察者模式下,一个被观察者装置对应于一个或多个观察者装置,当被观察者装置发生预定事件时,观察者装置可以根据该预定事件执行相应的响应策略。
[0003]以安卓系统为例,在现有的观察者模式下,观察者装置向控制装置进行注册,当被观察者装置发生预定事件时,向控制装置发送该预定事件的标识和相关参数。控制装置接收到该预定事件的标识和相关参数后,通过Intent将该预定事件的标识和相关参数传递给观察者装置。观察者装置根据该预定事件的标识查询对应的响应策略,并根据该相关参数执行该响应策略。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
[0005]现有的观察者模式下,首先,通过Intent传递数据需要进行序列化和反序列化的过程,而该过程需要消耗一定的系统开销,影响系统性能;其次,观察者装置需要根据预定事件的标识查询对应的响应策略,从而导致观察者装置的代码结构更加复杂,影响代码的可读性和可维护性。

【发明内容】

[0006]为了解决现有技术中通过Intent传递数据需要进行序列化和反序列化的过程而导致的增加系统开销,影响系统性能的问题以及观察者装置需要根据预定事件的标识查询对应的响应策略而导致的观察者装置的代码结构复杂,影响可读性和可维护性的问题,本发明实施例提供了一种策略执行方法、装置及系统。所述技术方案如下:
[0007]—方面,提供了一种观察者模式下的策略执行方法,用于控制装置中,所述方法包括:
[0008]接收预定事件的标识以及与所述预定事件相对应的策略参数;
[0009]根据预先建立的所述预定事件的标识与响应策略之间的对应关系查询所述响应策略;
[0010]向所述响应策略对应的观察者装置发送执行通知,所述执行通知中包含有所述策略参数和所述响应策略,所述执行通知用于指示所述观察者装置根据所述策略参数执行所述响应策略。
[0011]所述接收预定事件的标识以及与所述预定事件相对应的策略参数之前,包括:
[0012]接收所述观察者装置发送的注册请求;
[0013]通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略;
[0014]检测所述可执行策略是否对应有预定类型的Java注解;
[0015]若检测结果为所述可执行策略对应有所述预定类型的Java注解,则将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识;
[0016]建立所述预定事件的标识与所述响应策略之间的对应关系。
[0017]所述方法还包括:
[0018]接收所述观察者装置发送的撤销请求;
[0019]将所述预定事件的标识与所述响应策略之间的对应关系删除。
[0020]另一方面,提供了一种观察者模式下的策略执行方法,用于观察者装置中,所述方法包括:
[0021]接收控制装置发送的执行通知,所述执行通知中包含有策略参数以及与所述观察者装置对应的响应策略;所述执行通知为所述控制装置接收预定事件的标识以及所述策略参数,并根据预先建立的所述预定事件的标识与所述响应策略之间的对应关系查询到所述响应策略后发送的通知;
[0022]根据所述策略参数执行所述响应策略。
[0023]所述接收控制装置发送的执行通知之前,还包括:
[0024]向所述控制装置发送注册请求,所述注册请求用于指示所述控制装置通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略,并在检测出所述可执行策略对应有所述预定类型的Java注解后,将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识,并建立所述预定事件的标识与所述响应策略之间的对应关系。
[0025]所述方法还包括:
[0026]向所述控制装置发送撤销请求,所述撤销请求用于指示所述控制装置将所述预定事件的标识与所述响应策略之间的对应关系删除。
[0027]再一方面,提供了一种观察者模式下的控制装置,所述装置包括:
[0028]第一接收模块,用于接收预定事件的标识以及与所述预定事件相对应的策略参数;
[0029]查询模块,用于根据预先建立的所述预定事件的标识与响应策略之间的对应关系查询所述响应策略;
[0030]通知发送模块,用于向所述响应策略对应的观察者装置发送执行通知,所述执行通知中包含有所述策略参数和所述响应策略,所述执行通知用于指示所述观察者装置根据所述策略参数执行所述响应策略。
[0031]所述装置包括:
[0032]注册请求接收模块,用于在所述第一接收模块接收预定事件的标识以及与所述预定事件相对应的策略参数之前,接收所述观察者装置发送的注册请求;
[0033]遍历模块,用于通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略;
[0034]检测模块,用于检测所述可执行策略是否对应有预定类型的Java注解;
[0035]第一获取模块,用于若所述检测模块的检测结果为所述可执行策略对应有所述预定类型的Java注解,则将所述可执行策略获取为所述响应策略;
[0036]第二获取模块,用于若所述检测模块的检测结果为所述可执行策略对应有所述预定类型的Java注解,则从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识;
[0037]建立模块,用于建立所述预定事件的标识与所述响应策略之间的对应关系。
[0038]所述装置还包括:
[0039]撤销请求接收模块,用于接收所述观察者装置发送的撤销请求;
[0040]删除模块,用于将所述预定事件的标识与所述响应策略之间的对应关系删除。
[0041]又一方面,提供了一种观察者模式下的观察者装置,所述装置包括:
[0042]通知接收模块,用于接收控制装置发送的执行通知,所述执行通知中包含有策略参数以及与所述观察者装置对应的响应策略;所述执行通知为所述控制装置接收预定事件的标识以及所述策略参数,并根据预先建立的所述预定事件的标识与所述响应策略之间的对应关系查询到所述响应策略后发送的通知;
[0043]执行模块,用于根据所述策略参数执行所述响应策略。
[0044]所述装置还包括:
[0045]注册请求发送模块,用于在所述通知接收模块接收控制装置发送的执行通知之前,向所述控制装置发送注册请求,所述注册请求用于指示所述控制装置通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略,并在检测出所述可执行策略对应有所述预定类型的Java注解后,将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识,并建立所述预定事件的标识与所述响应策略之间的对应关系。
[0046]所述装置还包括:
[0047]撤销请求发送模块,用于向所述控制装置发送撤销请求,所述撤销请求用于指示所述控制装置将所述预定事件的标识与所述响应策略之间的对应关系删除。
[0048]又一方面,提供了一种观察者模式下的策略执行系统,所述系统包括:
[0049]如上所述的控制装置以及观察者装置。
[0050]本发明实施例提供的技术方案带来的有益效果是:
[0051]通过在接收预定事件的标识以及与该预定事件相对应的策略参数后,根据预先建立的该预定事件的标识与响应策略之间的对应关系查询该响应策略,并向该响应策略对应的观察者装置发送包含有该策略参数和该响应策略的执行通知,由观察者装置根据该策略参数执行该响应策略,不需要通过Intent传递数据,也不需要观察者装置根据预定事件的标识查询对应的响应策略,解决了现有技术中增加系统开销的问题以及观察者装置的代码结构复杂的问题,达到提高系统性能和观察者代码可读性和可维护性的效果。
【专利附图】

【附图说明】
[0052]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]图1是本发明一个实施例提供的策略执行方法的方法流程图;
[0054]图2是本发明另一实施例提供的策略执行方法的方法流程图;[0055]图3是本发明一个实施例提供的策略执行方法的方法流程图;
[0056]图4是本发明另一实施例提供的策略执行方法的方法流程图;
[0057]图5是本发明一个实施例提供的策略执行方法的方法流程图;
[0058]图6是本发明一个实施例提供的控制装置的装置结构图;
[0059]图7是本发明另一实施例提供的控制装置的装置结构图;
[0060]图8是本发明一个实施例提供的观察者装置的装置结构图;
[0061]图9是本发明另一实施例提供的观察者装置的装置结构图;
[0062]图10是本发明一个实施例提供的策略执行系统的系统构成图。
【具体实施方式】
[0063]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0064]请参考图1,其示出了本发明一个实施例提供的策略执行方法的方法流程图。该策略执行方法用于观察者模式下的控制装置中。该策略执行方法可以包括:
[0065]步骤102,接收预定事件的标识以及与该预定事件相对应的策略参数;
[0066]步骤104,根据预先建立的该预定事件的标识与响应策略之间的对应关系查询该响应策略;
[0067]步骤106,向该响应策略对应的观察者装置发送执行通知,该执行通知中包含有该策略参数和该响应策略,该执行通知用于指示该观察者装置根据该策略参数执行该响应策略。
[0068]综上所述,本发明实施例提供的策略执行方法,通过在接收预定事件的标识以及与该预定事件相对应的策略参数后,根据预先建立的该预定事件的标识与响应策略之间的对应关系查询该响应策略,并向该响应策略对应的观察者装置发送包含有该策略参数和该响应策略的执行通知,由观察者装置根据该策略参数执行该响应策略,不需要通过Intent传递数据,也不需要观察者装置根据预定事件的标识查询对应的响应策略,解决了现有技术中增加系统开销的问题以及观察者装置的代码结构复杂的问题,达到提高系统性能和观察者代码可读性和可维护性的效果。
[0069]请参考图2,其示出了本发明另一实施例提供的策略执行方法的方法流程图。该策略执行方法用于观察者模式下的控制装置中。以该观察者模式下的控制装置和观察者装置基于Java语言设计为例,该策略执行方法可以包括:
[0070]步骤202,接收观察者装置发送的注册请求;
[0071]在观察者模式下,观察者装置在根据预定事件执行对应的响应策略之前,首先需要向控制装置发送注册请求进行注册。
[0072]步骤204,通过Java反射机制遍历该观察者装置的源码中包含的可执行策略,检测该可执行策略是否对应有预定类型的Java注解;
[0073]以观察者装置基于Java语言设计为例,开发者可以在观察者装置的源码中编写可执行的策略,又称为方法(Method),这些方法(Method)可以在观察者装置运行时,被其它程序通过Java反射机制遍历该观察者装置的源码获取。
[0074]而Java注解是Java中的另一种特殊机制,其可以使Java源码中不但可以包含功能性的实现代码,还可以添加元数据。在Java源码中,Java注解以注解名”的形式存在。在开发观察者装置时,开发人员将观察者装置在观察者模式下的响应策略以方法(Method)的形式写入源码,并将该响应策略对应的预定事件的标识写入该响应策略对应的预定类型的注解的属性中。
[0075]控制装置在接收到观察者装置发送的注册请求后,可以通过Java反射机制遍历该观察者装置的源码中包含的所有的可执行策略,并检测这些可执行策略是否对应有预定类型的Java注解,即检测该可执行策略对应的Java注解的注解名是否为预定的注解名。
[0076]步骤206,若检测结果为该可执行策略对应有该预定类型的Java注解,则将该可执行策略获取为该响应策略,并从该可执行策略对应的Java注解的属性中获取该预定事件的标识;
[0077]请参考如下所示的代码片段:
[0078]

pul)lic ckiss SairiplcActiv ity ex lends Act i v ily {

("..0wrride
[0079]pi'otcctcd void onResume() {
super.0nResume();
//向 NotificationCenter 注册回调

NotificationCenter.defaultCenteil; ).addObserver(tMs);

}
?Override
protected void onResume( ) f
super,onPause();
//向 NotificationCenter 取演爾Λ
NotiilcationCenter.defaultCenter( ).renioveObserver(tliis);

I
//用NotificationID注解标识接爾?的方法
(i/.;Noiii1cationID(id=NotificationID,SAMPLE_ID)
public void onSampleID(int sample I){
//回调方法执行

}
}
[0080]其中,NotificationID为预定的注解名,onSampleID为可执行策略,控制装置获取到可执行策略onSampleID之后,检测到对应注解的注解名为NotificationID,则将该onSampleID获取为该响应策略,并将ONotificationID的属性中包含的元数据获取为该响应策略对应的预定事件的标识。
[0081]步骤208,建立该预定事件的标识与该响应策略之间的对应关系;
[0082]具体的,控制装置可以将该响应策略以及该观察者装置的标识对应存储,同时建立该预定事件的标识、该响应策略以及该观察者装置的标识之间的对应关系。
[0083]步骤210,接收该预定事件的标识以及与该预定事件相对应的策略参数;
[0084]其中,该预定事件为被观察者装置发生的事件,且被观察者被设置为在发生该预定事件时向控制装置发送该预定事件的标识以及该预定事件对应的策略参数。
[0085]步骤212,根据预先建立的该预定事件的标识与响应策略之间的对应关系查询该响应策略,并向该观察者装置发送执行通知,该执行通知中包含有该策略参数和该响应策略;
[0086]其中,该响应策略是可以被观察者装置直接执行的对象引用,观察者装置接收到该执行通知后,可以直接根据该策略参数执行该响应策略。
[0087]步骤214,接收所述观察者装置发送的撤销请求,将该预定事件的标识与该响应策略之间的对应关系删除。
[0088]以该被观察者装置为下载进程,观察者装置为显示进程,预定事件为完成文件的下载,该预定事件的标识为1,该策略参数为下载完成的文件的存储地址,该响应策略为显示该存储地址中的文件为例。显示进程首先向控制装置发起注册,控制装置通过Java发射机制从显示进程的源码中获得该预定事件的标识以及该响应策略,并建立该预定事件的标识、该响应策略以及该显示进程的标识,比如该显示进程的接口地址之间的对应关系。当下载进程下载完成某文件之后,向控制装置发送该预定事件的标识I以及该文件的存储地址,控制装置根据该预定事件的标识I查询到该响应策略为显示该存储地址中的文件后,将该文件的存储地址和该响应策略发送至该显示进程的接口地址,显示进程根据该存储地址显示该文件。当显示进程不再需要显示下载进程下载完成的文件时,可以向控制装置发送撤销请求,控制装置根据该显示进程的标识查询该预定事件的标识、该响应策略以及该显示进程的标识之间的对应关系并删除。
[0089]综上所述,本发明实施例提供的策略执行方法,通过在接收预定事件的标识以及与该预定事件相对应的策略参数后,根据预先建立的该预定事件的标识与响应策略之间的对应关系查询该响应策略,并向该响应策略对应的观察者装置发送包含有该策略参数和该响应策略的执行通知,由观察者装置根据该策略参数执行该响应策略,即控制装置可以直接调用观察者装置的对象引用,观察者装置不再需要根据该预定事件的标识自行判断是否执行该响应策略,从而达到简化观察者装置的代码结构,提高代码可读性和可维护性的效果O
[0090]此外,本发明实施例提供的策略执行方法,可以直接将策略参数和响应策略发送给观察者装置,不需要对数据进行序列化,解决了现有技术中增加数据的序列化导致的增加系统开销的问题,达到提高系统性能的效果。
[0091]请参考图3,其示出了本发明一个实施例提供的策略执行方法的方法流程图。该策略执行方法用于观察者模式下的观察者装置中。该策略执行方法可以包括:
[0092]步骤302,接收控制装置发送的执行通知,该执行通知中包含有策略参数以及与该观察者装置对应的响应策略;该执行通知为该控制装置接收预定事件的标识以及该策略参数,并根据预先建立的该预定事件的标识与该响应策略之间的对应关系查询到该响应策略后发送的通知;
[0093]步骤304,根据该策略参数执行该响应策略。
[0094]综上所述,本发明实施例提供的策略执行方法,通过接收控制装置在接收预定事件的标识以及该策略参数,并根据预先建立的该预定事件的标识与该响应策略之间的对应关系查询到该响应策略后发送的通知,并根据该策略参数执行该响应策略,不需要通过Intent传递数据,也不需要观察者装置根据预定事件的标识查询对应的响应策略,解决了现有技术中增加系统开销的问题以及观察者装置的代码结构复杂的问题,达到提高系统性能和观察者代码可读性和可维护性的效果。
[0095]请参考图4,其示出了本发明另一实施例提供的策略执行方法的方法流程图。该策略执行方法用于观察者模式下的观察者装置中。以该观察者模式下的控制装置和观察者装置基于Java语言设计为例,该策略执行方法可以包括:
[0096]步骤402,向控制装置发送注册请求;
[0097]该注册请求用于指示该控制装置通过Java反射机制遍历该观察者装置的源码中包含的可执行策略,并在检测出该可执行策略对应有该预定类型的Java注解后,将该可执行策略获取为该响应策略,并从该可执行策略对应的Java注解的属性中获取该预定事件的标识,并建立该预定事件的标识与该响应策略之间的对应关系。
[0098]其中,该控制装置通过Java反射机制获取该预定事件的标识和该响应策略,并建立该预定事件的标识与该响应策略之间的对应关系的具体步骤请参考图2所示实施例中步骤204至步骤208下的描述,此处不再赘述。
[0099]步骤404,接收控制装置发送的执行通知,该执行通知中包含有策略参数以及与观察者装置对应的响应策略;
[0100]其中,该执行通知为该控制装置接收预定事件的标识以及该策略参数,并根据预先建立的该预定事件的标识与该响应策略之间的对应关系查询到该响应策略后发送的通知。
[0101]步骤406,根据该策略参数执行该响应策略;
[0102]其中,该响应策略是可以被观察者装置直接执行的对象引用,观察者装置接收到该执行通知后,可以直接根据该策略参数执行该响应策略。
[0103]步骤408,向该控制装置发送撤销请求;
[0104]该撤销请求用于指示该控制装置将该预定事件的标识与该响应策略之间的对应关系删除。
[0105]以该被观察者装置为下载进程,观察者装置为显示进程,预定事件为完成文件的下载,该预定事件的标识为1,该策略参数为下载完成的文件的存储地址,该响应策略为显示该存储地址中的文件为例。显示进程首先向控制装置发起注册,控制装置从显示进程的源码中获取该预定事件的标识以及该响应策略,并建立该预定事件的标识、该响应策略以及该显示进程的标识,比如该显示进程的接口地址之间的对应关系。控制装置后续在接收到下载装置发送的该预定事件的标识I以及下载装置下载的文件的存储地址后,并根据该预定事件的标识I查询到该响应策略为显示该存储地址中的文件后,将该文件的存储地址和该响应策略发送至该显示进程的接口地址,显示进程根据该存储地址显示该文件。当显示进程不再需要显示下载进程下载完成的文件时,可以向控制装置发送撤销请求,控制装置根据该显示进程的标识查询该预定事件的标识、该响应策略以及该显示进程的标识之间的对应关系并删除。
[0106]综上所述,本发明实施例提供的策略执行方法,通过接收控制装置在接收预定事件的标识以及该策略参数,并根据预先建立的该预定事件的标识与该响应策略之间的对应关系查询到该响应策略后发送的通知,并根据该策略参数执行该响应策略,不需要通过Intent传递数据,也不需要观察者装置根据预定事件的标识查询对应的响应策略,解决了现有技术中增加系统开销的问题以及观察者装置的代码结构复杂的问题,达到提高系统性能和观察者代码可读性和可维护性的效果。
[0107]请参考图5,其示出了本发明一个实施例提供的策略执行方法的方法流程图。该策略执行方法用于观察者模式下策略执行系统中,该系统包括观察者装置和控制装置。以该观察者模式下的控制装置和观察者装置基于Java语言设计为例,该策略执行方法可以包括:
[0108]步骤502,观察者装置向控制装置发送注册请求;
[0109]在观察者模式下,观察者装置在根据预定事件执行对应的响应策略之前,首先需要向控制装置发送注册请求进行注册。
[0110]步骤504,控制装置通过Java反射机制遍历该观察者装置的源码中包含的可执行策略,检测该可执行策略是否对应有预定类型的Java注解;
[0111]以观察者装置基于Java语言设计为例,开发者可以在观察者装置的源码中编写可执行的策略,又称为方法(Method),这些方法(Method)可以在观察者装置运行时,被其它程序通过Java反射机制遍历该观察者装置的源码获取。
[0112]而Java注解是Java中的另一种特殊机制,其可以使Java源码中不但可以包含功能性的实现代码,还可以添加元数据。在Java源码中,Java注解以注解名”的形式存在。在开发观察者装置时,开发人员将观察者装置在观察者模式下的响应策略以方法(Method)的形式写入源码,并将该响应策略对应的预定事件的标识写入该响应策略对应的预定类型的注解的属性中。
[0113]控制装置在接收到观察者装置发送的注册请求后,可以通过Java反射机制遍历该观察者装置的源码中包含的所有的可执行策略,并检测这些可执行策略是否对应有预定类型的Java注解,即检测该可执行策略对应的Java注解的注解名是否为预定的注解名。
[0114]步骤506,若检测结果为该可执行策略对应有该预定类型的Java注解,则控制装置将该可执行策略获取为该响应策略,并从该可执行策略对应的Java注解的属性中获取该预定事件的标识;
[0115]请参考如下所示的代码片段:
[0116]
【权利要求】
1.一种观察者模式下的策略执行方法,用于控制装置中,其特征在于,所述方法包括: 接收预定事件的标识以及与所述预定事件相对应的策略参数; 根据预先建立的所述预定事件的标识与响应策略之间的对应关系查询所述响应策略; 向所述响应策略对应的观察者装置发送执行通知,所述执行通知中包含有所述策略参数和所述响应策略,所述执行通知用于指示所述观察者装置根据所述策略参数执行所述响应策略。
2.根据权利要求1所述的方法,其特征在于,所述接收预定事件的标识以及与所述预定事件相对应的策略参数之前,包括: 接收所述观察者装置发送的注册请求; 通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略; 检测所述可执行策略是否对应有预定类型的Java注解; 若检测结果为所述可执行策略对应有所述预定类型的Java注解,则将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识; 建立所述预定事件的标识与所述响应策略之间的对应关系。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收所述观察者装置发送的撤销请求; 将所述预定事件的标识与所述响应策略之间的对应关系删除。
4.一种观察者模式下的策略执行方法,用于观察者装置中,其特征在于,所述方法包括: 接收控制装置发送的执行通知,所述执行通知中包含有策略参数以及与所述观察者装置对应的响应策略;所述执行通知为所述控制装置接收预定事件的标识以及所述策略参数,并根据预先建立的所述预定事件的标识与所述响应策略之间的对应关系查询到所述响应策略后发送的通知; 根据所述策略参数执行所述响应策略。
5.根据权利要求4所述的方法,其特征在于,所述接收控制装置发送的执行通知之前,还包括: 向所述控制装置发送注册请求,所述注册请求用于指示所述控制装置通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略,并在检测出所述可执行策略对应有所述预定类型的Java注解后,将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识,并建立所述预定事件的标识与所述响应策略之间的对应关系。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括: 向所述控制装置发送撤销请求,所述撤销请求用于指示所述控制装置将所述预定事件的标识与所述响应策略之间的对应关系删除。
7.一种观察者模式下的控制装置,其特征在于,所述装置包括: 第一接收模块,用于接收预定事件的标识以及与所述预定事件相对应的策略参数; 查询模块,用于根据预先建立的所述预定事件的标识与响应策略之间的对应关系查询所述响应策略; 通知发送模块,用于向所述响应策略对应的观察者装置发送执行通知,所述执行通知中包含有所述策略参数和所述响应策略,所述执行通知用于指示所述观察者装置根据所述策略参数执行所述响应策略。
8.根据权利要求7所述的装置,其特征在于,所述装置包括: 注册请求接收模块,用于在所述第一接收模块接收预定事件的标识以及与所述预定事件相对应的策略参数之前,接收所述观察者装置发送的注册请求; 遍历模块,用于通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略; 检测模块,用于检测所述可执行策略是否对应有预定类型的Java注解; 第一获取模块,用于若所述检测模块的检测结果为所述可执行策略对应有所述预定类型的Java注解,则将所述可执行策略获取为所述响应策略; 第二获取模块,用于若所述检测模块的检测结果为所述可执行策略对应有所述预定类型的Java注解,则从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识; 建立模块,用于建立所述预定事件的标识与所述响应策略之间的对应关系。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括: 撤销请求接收模块,用于接收所述观察者装置发送的撤销请求; 删除模块,用于将所述预定事件的标识与所述响应策略之间的对应关系删除。
10.一种观察者模式下的观察者装置,其特征在于,所述装置包括: 通知接收模块,用于接收控制装置发送的执行通知,所述执行通知中包含有策略参数以及与所述观察者装置对应的响应策略;所述执行通知为所述控制装置接收预定事件的标识以及所述策略参数,并根据预先建立的所述预定事件的标识与所述响应策略之间的对应关系查询到所述响应策略后发送的通知; 执行模块,用于根据所述策略参数执行所述响应策略。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括: 注册请求发送模块,用于在所述通知接收模块接收控制装置发送的执行通知之前,向所述控制装置发送注册请求,所述注册请求用于指示所述控制装置通过Java反射机制遍历所述观察者装置的源码中包含的可执行策略,并在检测出所述可执行策略对应有所述预定类型的Java注解后,将所述可执行策略获取为所述响应策略,并从所述可执行策略对应的Java注解的属性中获取所述预定事件的标识,并建立所述预定事件的标识与所述响应策略之间的对应关系。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括: 撤销请求发送模块,用于向所述控制装置发送撤销请求,所述撤销请求用于指示所述控制装置将所述预定事件的标识与所述响应策略之间的对应关系删除。
13.一种观察者模式下的策略执行系统,其特征在于,所述系统包括: 如权利要求7至9任一所述的控制装置以及如权利要求10至12任一所述的观察者装置。
【文档编号】G06F9/45GK103838615SQ201410072394
【公开日】2014年6月4日 申请日期:2014年2月28日 优先权日:2014年2月28日
【发明者】许铎, 张旺辉, 贺灏 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1