一种视图层组件替换方法和装置与流程

文档序号:25732818发布日期:2021-07-06 18:41阅读:77来源:国知局
一种视图层组件替换方法和装置与流程

本发明属于软件开发技术领域,具体涉及一种视图层组件替换方法和装置。



背景技术:

目前在主流的前端开发模式中,视图层组件存在组件级循环依赖。且在大量组件开发过程中很难实现增量的按需替换。即在非侵入的情况下对已有的前端项目进行升级和扩展。现有的一般方法采用一些修改原有代码,重新编译的方式实现升级。这种方式对于增量开发并不友好,容易造成源代码过于庞大非常不利于项目的模块化划分。



技术实现要素:

为了解决现有技术存在的代码庞大、不便于模块化替换的问题,本发明提供了一种视图层组件替换方法和装置,其具有避免循环依赖、便于模块模块化替换等特点。

根据本发明的具体实施方式的一种视图层组件替换方法,包括:

基于控制反转技术在组件进行定义时采用唯一键存储至预设队列中,并生成相应的生产者;

获取所述生产者生成的生产者条件,并将所述生产者条件存储至生产者条件队列中;

获取消费者的消费者条件,并将所述消费者条件放入所述生产者条件队列中进行匹配;

若匹配通过,则基于对应生产者的对应唯一键将所述对应生产者相应的组件替换为所述消费者对应的目标组件。

进一步地,所述视图层组件替换方法还包括:将所述生产者的唯一键发送至唯一键管理中心进行管理。

进一步地,所述视图层组件替换方法还包括:若所述生产者存在下级组件,则将所述下级组件的上下文发送至所述唯一键管理中心进行模糊匹配以得到所述下级组件的唯一键。

进一步地,所述视图层组件替换方法还包括:若匹配通过得到所述下级组件的唯一键,则将所述下级组件替换为所述目标组件。

进一步地,所述上下文包括:视图类型、字段类型、读写状态和组件名称。

根据本发明具体实施方式提供的一种视图层组件替换装置,包括:

生产者模块,用于基于控制反转技术在组件进行定义时采用唯一键存储至预设队列中,并生成相应的生产者;

条件模块,用于获取所述生产者生成的生产者条件,并将所述生产者条件存储至生产者条件队列中;以及

替换模块,用于获取消费者的消费者条件,并将所述消费者条件放入所述生产者条件队列中进行匹配;

若匹配通过,则基于对应生产者的对应唯一键将所述对应生产者相应的组件替换为所述消费者对应的目标组件。

进一步地,还包括唯一键管理中心,用于对所述生产者的唯一键进行管理。

进一步地,还包括匹配模块,用于将下级组件的上下文发送至所述唯一键管理中心进行模糊匹配以得到所述下级组件的唯一键。

本发明的有益效果为:通过对生产者的唯一键和生产条件分别进行存储,并基于消费者的条件进行匹配相应的生产者条件,在匹配成功后通过相应的唯一键将对应的组件替换为消费者的组件,因为在将生产者存储到队列过程中时已经对生产者做了隐式的子类到基类的转换,所以消费者实际上是对基类的强依赖,而不是对子类的强依赖,解决了循环依赖问题,从而实现了模块化的组件替换,使组件的替换更加的便利。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例提供的视图层组件替换方法的流程图;

图2是根据一示例性实施例提供的视图层组件替换方法的另一流程图;

图3是根据一示例性实施例提供的视图层组件替换装置的原理图;

图4是根据一示例性实施例提供的唯一键技术原理图;

图5是根据一示例性实施例提供的替换前效果图;

图6是根据一示例性实施例提供的替换后效果图。

附图标记

1-生产者模块;2-条件模块;3-替换模块;4-唯一键管理中心;5-匹配模块。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

参照图1所示,本发明的实施例提供了一种视图层组件替换方法,具体包括包括:

101、基于控制反转技术在组件进行定义时采用唯一键存储至预设队列中,并生成相应的生产者;

当一个组件定义时使用唯一键存储到一个确定队列中,即生产者。当消费者需要消费时采用已知唯一键从队列中取出实例或者类工厂。因为在将生产者存储到队列过程中时已经对生产者做了隐式的子类->基类的转换,所以消费者实际上是对基类的强依赖,而不是对子类的强依赖。解决了循环依赖问题

102、获取生产者生成的生产者条件,并将生产者条件存储至生产者条件队列中;

103、获取消费者的消费者条件,并将消费者条件放入生产者条件队列中进行匹配;

如果需要使用控制反转机制需要在消费者与生产者之间约定唯一键。静态的唯一键主要用于一个确定的生产者,在实际开发中会使用一些配置之类的方法实现一些伪动态唯一键来改变运行时实例的类型。通过消费者在消费过程中模糊匹配已存在的生产条件选取生产者的唯一键实现运行时动态唯一键。

104、若匹配通过,则基于对应生产者的对应唯一键将对应生产者相应的组件替换为消费者对应的目标组件。

这样通过对生产者的唯一键和生产条件分别进行存储,并基于消费者的条件进行匹配相应的生产者条件,在匹配成功后通过相应的唯一键将对应的组件替换为消费者的组件,因为在将生产者存储到队列过程中时已经对生产者做了隐式的子类到基类的转换,所以消费者实际上是对基类的强依赖,而不是对子类的强依赖,解决了循环依赖问题,从而实现了模块化的组件替换,使组件的替换更加的便利。

需要说明的是,在软件开发领域中产生数据的模块称之为生产者,而处理数据的模块称之为消费者。

作为上述实施例可行的实现方式,参照图4所示,在具体实施时每一个生产者都会注册一个生产者条件并且生成全局唯一健α。当消费行为产生时,消费者会将自身的条件放入生产者条件队列中匹配,当匹配通过时可以得到唯一键α。从而基于唯一键α进行对应组件的替换。

参照图2所示,在本发明的另一具体实施例中,视图层组件替换方法具体包括:

201、基于控制反转技术在组件进行定义时采用唯一键存储至预设队列中,并生成相应的生产者;

202、获取生产者生成的生产者条件,并将生产者条件存储至生产者条件队列中;

203、获取消费者的消费者条件,并将消费者条件放入生产者条件队列中进行匹配;

204、若匹配通过,则基于对应生产者的对应唯一键将对应生产者相应的组件替换为消费者对应的目标组件

205、将生产者的唯一键发送至唯一键管理中心进行管理。

206、若生产者存在下级组件,则将下级组件的上下文发送至唯一键管理中心进行模糊匹配以得到下级组件的唯一键。

207、若匹配通过得到下级组件的唯一键,则将下级组件替换为目标组件。

具体的,上下文包括:视图类型、字段类型、读写状态和组件名称。对于任一组件,当组件存在下级组件时,组件会将需要渲染的下级组件的上下文传入唯一键管理中心进行模糊匹配的得到下级组件的唯一键用于获取下级组件实例。参照图5和图6所示,原组件的树结构包括表单、明细和所属,其中表单中包括基本信息,基本信息中包括用户、动作和角色,动作中包括取消和提交;明细中包括仓库。

对于任一组件,当组件存在下级组件时,组件会将需要渲染的下级组件的上下文传入唯一键管理中心进行模糊匹配的得到下级组件的唯一键用于获取下级组件实例。其中上下文是被生产者与消费者组件之间相互约定的一系列的属性,例如在试图组件选取字段组件时会使用视图类型、字段类型(数据类型)、读写状态、组件名称4个属性对已有组件进行匹配。例如提交组件的注册条件为视图类型:表单;内容区域:基本信息;名称:提交,进而因为提交组件的注册条件满足α组件的渲染条件,且注册时间晚于α,所以再次渲染时组件树会进行自然的替换为四个角为弧形的提交组件。

基于同样的设计思路参照图3所示,本发明的实施例还提供了一种视图层组件替换装置,用于执行包含以上实施例所述的视图层组件替换方法的计算机程序,包括:

生产者模块1,用于基于控制反转技术在组件进行定义时采用唯一键存储至预设队列中,并生成相应的生产者;

条件模块2,用于获取生产者生成的生产者条件,并将生产者条件存储至生产者条件队列中;以及

替换模块3,用于获取消费者的消费者条件,并将消费者条件放入生产者条件队列中进行匹配;

若匹配通过,则基于对应生产者的对应唯一键将对应生产者相应的组件替换为消费者对应的目标组件。

还包括唯一键管理中心4,用于对生产者的唯一键进行管理。

还包括匹配模块5,用于将下级组件的上下文发送至唯一键管理中心进行模糊匹配以得到所述下级组件的唯一键。

本发明实施例提供的视图层组件替换装置可执行本发明任意实施例提供的视图层组件替换方法,具备执行方法相应的功能模块和有益效果。

本发明上述实施例所提供的视图层组件替换方法和装置,在将生产者存储到队列过程中时已经对生产者做了隐式的子类到基类的转换,从而消费者实际上是对基类的强依赖,而不是对子类的强依赖,解决了循环依赖问题,从而实现了模块化的组件替换,使组件的替换更加的便利。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。

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

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