本发明专利技术公开一种基于java的动态加载命令的方法及装置,其中,所述基于java的动态加载命令的方法包括如下步骤:创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;接收动态加载命令,所述动态加载命令中包含有命令名称;将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。本发明专利技术的技术方案能够有效的降低程序的耦合度,有利于提高程序的扩展能力。
【技术实现步骤摘要】
本专利技术涉及软件架构
,尤其涉及一种基于java的动态加载命令的方法及装置。
技术介绍
软件架构(softwarearchitecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。Java注解:注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在。另外,可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件、或者运行时中出现(SOURCE/CLASS/RUNTIME)。在实际应用中,一般的做法是编写每个功能的实现类,根据命令加载不同的功能类实现相关功能,对架构设计来说是高耦合的,在软件生命周期中是不易扩展、维护的。系统耦合度太高不利于扩展和维护,修改一个类的内容要关联修改多个跟这个有关系的类,对于程序代码的维护成本非常高。
技术实现思路
本专利技术的主要目的是提供一种基于java的动态加载命令的方法,能够有效的降低程序的耦合度,有利于提高程序的扩展能力。为实现上述目的,本专利技术采用的一个技术方案为:提供一种基于java的动态加载命令的方法,包括如下步骤:创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;接收动态加载命令,所述动态加载命令中包含有命令名称;将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。优选地,所述创建接口实现类的实例的步骤,具体包括:预先定义一命令接口类以及描述所述命令接口类的java注解类,其中,所述命令接口类包含有一引导程序;根据该引导程序在原程序的接口实现类中实现命令接口类;以及将java注解类对应添加至命令接口类中,形成带有命令注解的接口实现类;在原程序启动时,扫描带有命令注解的接口实现类,并根据带有命令注解的接口实现类创建包含有命令注解的接口实现类的实例。优选地,所述在原程序启动时,扫描带有命令注解的接口实现类的步骤,具体包括:在原程序启动时,利用java反射机制扫描带有命令注解的接口实现类。优选地,所述创建接口实现类的实例的步骤之后,还包括:将接口实现类的实例缓存至命令池中。为实现上述目的,本专利技术采用的另一个技术方案为:提供一种基于java的动态加载命令的装置,包括:创建模块,用于创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;接收模块,用于接收动态加载命令,所述动态加载命令中包含有命令名称;匹配模块,用于将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。优选地,所述创建模块,具体包括:定义单元,用于预先定义一命令接口类以及描述所述命令接口类的java注解类,其中,所述命令接口类包含有一引导程序;实现单元,用于根据该引导程序在原程序的接口实现类中实现命令接口类,并将java注解类对应添加至命令接口类中,形成带有命令注解的接口实现类;扫描单元,在原程序启动时,用于扫描带有命令注解的接口实现类;以及创建单元,用于根据带有命令注解的接口实现类创建包含有命令注解的接口实现类的实例。优选地,所述扫描单元,具体用于:在原程序启动时,利用java反射机制扫描带有命令注解的接口实现类。优选地,所述创建模块,还用于:将接口实现类的实例缓存至命令池中。本专利技术的技术方案主要采用,首先创建接口实现类的实例,该接口实现类的实例包含有至少一命令注解;然后接收用户发送的动态加载命令,所述动态加载命令中包含有命令名称;再将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例,并可以将调用的接口实现类的实例完成相关的功能操作。通过创建包含有命令注解的接口实现类的实例,在接收到动态加载命令时,能够调用与该命令注解对应的接口实现类的实例,实现对应的命令操作,可以降低对象的耦合度,有利于系统开发和维护;另外,本方案还可以在程序运行时动态增加修改命令,提高了程序的扩展性,使得定制更加灵活。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本专利技术一实施例基于java的动态加载命令的方法的方法流程图;图2为图1的步骤S10的具体流程图;图3为本专利技术另一实施例基于java的动态加载命令的装置的模块方框图;图4为图3的创建模块的模块方框图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明,本专利技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。请参照图1,在本专利技术实施例中,该基于java的动态加载命令的方法,包括如下步骤:步骤S10、创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;步骤S20、接收动态加载命令,所述动态加载命令中包含有命令名称;步骤S30、将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。本实施例中,该接口实现类可以包含有多个命令注解,每一命令注解相当于命令标识,当接收到动态加载命令时,通过将动态加载命令与命令注解匹配,在匹配成功后可以调用该命令注解对应的接口实现类的实例,以执行对应的功能操作。可以理解的,本方案中的创建的接口实现类的实例可能有多个,多个接口实现类的实例可能满足用户的不同要求,多个接口实现类的实例可以暂存于命令池中。上述实施例中,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配失败时,则匹配失败,并返回调用失败的信息。本专利技术的技术方案主要采用,首先创建接口实现类的实例,该接口实现类的实例包含有至少一命令注解;然后接收用户发送的动态加载命本文档来自技高网...
【技术保护点】
一种基于java的动态加载命令的方法,其特征在于,所述基于java的动态加载命令的方法包括如下步骤:创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;接收动态加载命令,所述动态加载命令中包含有命令名称;将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。
【技术特征摘要】
1.一种基于java的动态加载命令的方法,其特征在于,所述基于java的动态加载命令的方法包括如下步骤:创建接口实现类的实例,其中,所述接口实现类的实例包含有至少一命令注解;接收动态加载命令,所述动态加载命令中包含有命令名称;将待动态加载的命令名称与接口实现类的实例的命令注解进行匹配,如果待动态加载的命令名称与接口实现类的实例的命令注解匹配成功,则调用与该命令注解对应的接口实现类的实例。2.如权利要求1所述的基于java的动态加载命令的方法,其特征在于,所述创建接口实现类的实例的步骤,具体包括:预先定义一命令接口类以及描述所述命令接口类的java注解类,其中,所述命令接口类包含有一引导程序;根据该引导程序在原程序的实现类中实现命令接口类,并将java注解类对应添加至命令接口类中,形成带有命令注解的接口实现类;在原程序启动时,扫描带有命令注解的接口实现类;以及根据带有命令注解的接口实现类创建包含有命令注解的接口实现类的实例。3.如权利要求2所述的基于java的动态加载命令的方法,其特征在于,所述在原程序启动时,扫描带有命令注解的接口实现类的步骤,具体包括:在原程序启动时,利用java反射机制扫描带有命令注解的接口实现类。4.如权利要求1所述的基于java的动态加载命令的方法,其特征在于,所述创建接口实现类的实例的步骤之后,还包括:将接口实现类的实例缓存至命令池中。5.一...
【专利技术属性】
技术研发人员:戚腾飞,褚博文,华德锋,刘昌卿,王明鹏,
申请(专利权)人:广东亿迅科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。