一种函数的优化处理方法和装置与流程

文档序号:11216022阅读:233来源:国知局
一种函数的优化处理方法和装置与流程

本发明涉及网络直播领域,更具体地,涉及一种函数的优化处理方法和装置。



背景技术:

随着网络直播行业的快速发展,用户对网络直播客户端的功能要求越来越高,对软件开发设计的要求也越来越高。

目前,在对客户端的软件开发设计中,主要是将一个完整的逻辑流程封装到一个函数中来进行处理,通常,一个完整的逻辑流程往往是比较复杂的,比如弹幕信息的拼装包含很多逻辑步骤,如用户校验,用户信息获取,账号等级获取,勋章获取用户发送弹幕样式设置等,这样会导致函数变得异常庞大,并且函数中一些代码间有很高的耦合性,不利于对函数的维护和对内部代码的重复利用,另外,对函数进行功能增加或者功能消除的操作也比较困难,通常需要对函数中的代码进行大范围的修改,修改起来很复杂并且容易引发其他问题。



技术实现要素:

为了克服上述问题或者至少部分地解决上述问题,本发明提供一种函数的优化处理方法和装置。

本发明的一个方面,提供一种函数的优化处理方法,包括:将函数内的代码按功能分成若干个代码段;将每个代码段封装为子函数块,根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类;通过提供者类给对应的子函数块设置接口,使各子函数块之间的数据传递通过接口实现。

其中,子函数块仅包含一个输入接口和一个输出接口,数据从输入接口输入,经子函数块处理后从输出接口输出。

其中,各子函数块之间的数据传递通过接口实现具体为:根据参与运行的子函数块在函数中的逻辑功能上的排序,将前一个子函数块的输出接口的数据传递至后一个子函数块的输入接口。

其中,该方法还包括:将待消除子函数块之前的子函数块的输出接口的数据传递至待消除子函数块之后的子函数块的输入接口。

其中,该方法还包括:根据待增加子函数块在函数中的逻辑功能上的排序,将待增加子函数块之前的子函数块的输出接口的数据传递至待增加子函数块的输入接口,并将待增加子函数块的输出接口的数据传递至待增加子函数块之后的子函数块的输入接口。

其中,该方法具体包括:将弹幕函数内的代码按功能分成处理用户信息相关的代码段、处理弹幕文字样式相关的代码段、弹幕展示过程中资源回收的代码段和校验代码段;将代码段分别封装为第一子函数块、第二子函数块、第三子函数块和第四子函数块,根据对应的代码段的功能给第一子函数块、第二子函数块、第三子函数块和第四子函数块分别定义含有interface的provider;通过述provider给对应的第一子函数块、第二子函数块、第三子函数块和第四子函数块设置接口,使弹幕函数内的各子函数块之间的数据传递通过所述接口实现。

其中,第一子函数块、第二子函数块、第三子函数块和第四子函数块分别仅包含一个输入接口和一个输出接口,数据从输入接口输入,经对应的子函数块处理后从输出接口输出。

其中,弹幕函数内的各子函数块之间的数据传递通过所述接口实现具体为:根据参与运行的第一子函数块、第二子函数块和第三子函数块在弹幕函数中的逻辑功能上的排序,将第一子函数块的输出接口的数据传递至第二子函数块的输入接口,将第二子函数块的输出接口的数据传递至第三子函数块的输入接口。

其中,该方法还具体包括:根据第四子函数块在弹幕函数中的逻辑功能上的排序为在第一子函数块与第二子函数块之间,将第一子函数块的输出接口的数据传递至第四子函数块的输入接口,并将第四子函数块的输出接口的数据传递至第二子函数块的输入接口。

本发明的另一方面,提供一种函数的优化处理装置,包括:划分模块,用于将函数内的代码按功能分成若干个代码段;封装模块,用于将每个代码段封装为子函数块,根据对应代码段的功能给子函数块定义含有接口的提供者类;接口设置模块,用于通过提供者类给对应的子函数块设置接口,使各子函数块之间的数据传递通过接口实现。

本发明提供的一种函数的优化处理方法和装置,通过将函数内的代码按功能分成若干个代码段,并将每个代码段封装为子函数块,然后根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类,并通过提供者类设置的接口实现子函数块之间的数据传递,达到了在最大程度上减弱函数中的代码之间的耦合性的目的,从而增加了函数的可维护性和内部子函数块的重复利用性,同时也提高了函数的可扩展性,且只需要通过较小的调整就能消除或者增加函数的部分功能。

附图说明

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

图1为根据本发明实施例的函数的优化处理方法的流程图;

图2为根据本发明实施例的函数的优化处理装置的示意图。

具体实施方式

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

在本发明的一个实施例中,参考图1,提供一种函数的优化处理方法,包括:s10,将函数内的代码按功能分成若干个代码段;s20,将每个代码段封装为子函数块,根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类;s30,通过提供者类给对应的子函数块设置接口,使各子函数块之间的数据传递通过接口实现。

具体的,程序中的函数由多段代码组成,编程者通过函数中的代码实现函数的功能;但是在一些函数中,函数实现的功能非常复杂,在函数内部往往需要划分成多个子功能,通过多个子功能共同完成一个复杂的功能。函数中的每个子功能也是由特定的代码来实现的,在本实施例中,将函数内的代码按功能分成若干个代码段,每个代码段实现一项功能。

同时,将上述的代码段封装起来,将封装起来的代码段定义为子函数块,并给每个子函数块定义一个提供者类,提供者类具有设置接口的功能,子函数块之间仅通过对应的提供者类设置的接口发生交互,即不同子函数块之间的耦合是通过接口来实现的,并且由于子函数块内的代码被封装起来,因此,不同子函数块内的代码之间不存在耦合性。

将提供者类为对应的子函数块设置的接口设计成具有数据传递的功能,不同子函数块之间分别通过各自对应的提供者类设置的接口实现数据的传递,并通过数据的传递实现多个子函数块的功能的组合,达到共同完成一个复杂的功能的目的。

本实施例通过将函数内的代码按功能分成若干个代码段,并将每个代码段封装为子函数块,然后根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类,并通过提供者类设置的接口实现子函数块之间的数据传递,达到了在最大程度上减弱函数中代码之间的耦合性的目的,从而增加了函数的可维护性和内部子函数块的重复利用性,同时也提高了函数的可扩展性。

本发明的另一个实施例,在以上实施例的基础上,子函数块仅包含一个输入接口和一个输出接口,数据从输入接口输入,经子函数块处理后从输出接口输出;各子函数块之间的数据传递通过接口实现具体为:根据参与运行的子函数块在函数中的逻辑功能上的排序,将前一个子函数块的输出接口的数据传递至后一个子函数块的输入接口。

具体的,每一个提供者类为对应的子函数块都只设计了一个数据传递入口和一个数据传递出口,该数据传递入口作为数据的输入接口,子函数块通过输入接口接收数据,并根据其封装的代码功能对数据进行处理,处理后的数据从数据传递出口输出,该数据传递出口作为输出接口;同时,根据函数具体的要实现的功能,部分子函数块可能不需要参与程序的运行,部分子函数块则需要参与程序的运行,对于参与运行的子函数块之间的数据传递是通过提供者类给对应的子函数块设置一个输入接口和一个输出接口来实现的,接口之间的数据传递要依据功能上的逻辑顺序,由参与运行的子函数块之间在功能上存在的逻辑顺序决定,前一个逻辑顺序的子函数块的输出接口的数据传递至后一个逻辑顺序的子函数块的输入接口,进而完成子函数块之间的数据的传递。

本实施例通过对子函数块都只设计了一个输入接口和一个输出接口,子函数块之间的数据传递通过各自唯一的输入接口和唯一的输出接口来实现,从而使子函数块对数据仅仅进行对该函数所需要的功能的处理,避免了子函数块由于功能多样性而造成与其他子函数块之间的不必要的耦合,并结合接口实现数据的传递以实现函数的整个功能。

本发明的又一个实施例,在以上实施例的基础上,该方法还包括:将待消除子函数块之前的子函数块的输出接口的数据传递至待消除子函数块之后的子函数块的输入接口,以消除待消除子函数块在函数中对应的功能;根据待增加子函数块在函数中的逻辑功能上的排序,将待增加子函数块之前的子函数块的输出接口的数据传递至待增加子函数块的输入接口,并将待增加子函数块的输出接口的数据传递至待增加子函数块之后的子函数块的输入接口,以增加待增加子函数块在函数中对应的功能。

具体的,该方法还包括通过简便的方式实现对函数的部分功能的消除,在确定需消除的功能后,比如需要消除某一次的校验功能,首先找到实现该校验功能的子函数块,确定为待消除子函数块,并找到在逻辑顺序上的在该待消除的子函数块之前的子函数块和之后的子函数块,将该待消除子函数块之前的子函数块的输出接口的数据传递至待消除子函数块之后的子函数块的输入接口,即完成了消除该待消除子函数块在函数中对应的功能。

同样的,该方法还能通过简便的方式实现对函数的功能的增加,在确定需增加的功能后,比如需要增加某一次的校验功能,首先找到实现该校验功能的子函数块,确定为待增加子函数块,根据该待增加子函数块在函数中的逻辑功能上的排序,将待增加子函数块之前的子函数块的输出接口的数据传递至待增加子函数块的输入接口,并将待增加子函数块的输出接口的数据传递至待增加子函数块之后的子函数块的输入接口,即完成了该增加该待增加子函数块在函数中对应的功能。

本实施例通过调整函数中子函数块接口之间的数据传递关系,实现了对函数部分功能的消除或者增加,在无需对函数中的代码进行大范围的修改的条件下,实现了对函数功能的扩展。

本发明的又一个实施例,在以上实施例的基础上,该方法具体包括:将弹幕函数内的代码按功能分成处理用户信息相关的代码段、处理弹幕文字样式相关的代码段、弹幕展示过程中资源回收的代码段和校验代码段;将上述代码段分别封装为第一子函数块、第二子函数块、第三子函数块和第四子函数块,根据对应的代码段的功能给第一子函数块、第二子函数块、第三子函数块和第四子函数块分别定义含有interface的provider;通过述provider给对应的第一子函数块、第二子函数块、第三子函数块和第四子函数块设置接口,使弹幕函数内的各子函数块之间的数据传递通过所述接口实现。

具体的,网络直播中的对弹幕函数的优化处理,目前该函数中所包含的功能大体如下:a、和用户信息相关的处理;b、与弹幕文字样式相关联的处理;c、弹幕展示过程中的资源回收;d、校验处理。从上述的功能介绍可以大体看出,根据业务功能的划分,可以将一个复杂的弹幕处理流程抽象成四大块,每一块都是处理一个特定的业务功能。

首先,根据上述四种功能的划分将函数分成四个代码段,并新建四个子函数块:第一子函数块、第二子函数块、第三子函数块和第四子函数块,这四个子函数块用于封装上述四个代码段,这样,通过对功能的划分,抽象出了对应的四个子函数块,通过对四个代码段的封装,使第一子函数块、第二子函数块、第三子函数块和第四子函数块之间的耦合性得到降低。

为了使四个子函数块之间的耦合性得到进一步降低,在每一个子函数块内部定义了一个provider,每一个provider表明该子函数块能够对外提供哪一些接口,这样处理后每一个子函数块都有自己独有的provider了。

在设计provider的时候将provider设计成含有interface,使provider具有接口设置功能,然后借助provider设置的接口来对外提供子函数块内的功能和服务。由于provider是通过interface的方式来进行实现的,这样就可以保证子函数块之间的耦合关系是通过接口来实现的,这样就进一步的降低了子函数块之间的耦合关系,同时,子函数块之间仅仅能够通过各自定义的provider来进行耦合,也对子函数块内部的其他功能起到了保护和隔离作用,并且,子函数块之间的数据还能通过provider为其设置的接口来传递。

本实施例通过将弹幕函数内的代码按功能分成四个代码段,并将每个代码段封装为子函数块,然后根据对应代码段的功能给子函数块定义含有interface的provider,并通过provider设置的接口实现各子函数块之间的数据传递,达到了在最大程度上减弱弹幕函数中代码之间的耦合性的目的,从而增加了弹幕函数的可维护性和内部子函数块的重复利用性,同时也提高了弹幕函数的可扩展性。

本发明的又一个实施例,在以上实施例的基础上,第一子函数块、第二子函数块、第三子函数块和第四子函数块分别仅包含一个输入接口和一个输出接口,数据从输入接口输入,经对应的子函数块处理后从输出接口输出;弹幕函数内的各子函数块之间的数据传递通过所述接口实现具体为:根据参与运行的第一子函数块、第二子函数块和第三子函数块在弹幕函数中的逻辑功能上的排序,将第一子函数块的输出接口的数据传递至第二子函数块的输入接口,将第二子函数块的输出接口的数据传递至第三子函数块的输入接口。

具体的,对弹幕函数中的四个子函数块,provider为这四个子函数块仅设置一个输入接口和一个输出接口,数据在子函数块内部的传输方式为,数据从输入接口输入,经对应的子函数块处理后从输出接口输出;数据在子函数块之间的传输方式为,根据弹幕函数具体要实现的功能,确定上述功能a、b和c为要参与实现的功能,数据仅需要在参与运行的第一子函数块、第二子函数块和第三子函数块之间传递,第一子函数块、第二子函数块和第三子函数块之间功能上的逻辑顺序为第一子函数块到第二子函数块再到第三子函数块,该函数的请求数据首先通过第一子函数块的输入接口进入到第一子函数块,第一子函数块对请求数据进行一系列处理最终会生成一个处理数据a1,接下来通过第一子函数块的输出接口将a1传递给第二子函数块的输入接口,第二子函数块获取到a1数据后对a1数据进行进一步的处理最终得到b2这条数据,然后将b2在屏幕上进行渲染和使用,使用完成后将b2数据通过第二子函数块的输出接口传递给第三子函数块的输入接口,在第三子函数块中释放b2数据和b2所相关联的所有数据,这样就完成了一个数据从请求到数据销毁的过程。

本实施例通过对弹幕函数中的子函数块都只设计了一个输入接口和一个输出接口,子函数块之间的数据传递通过各自唯一的输入接口和唯一的输出接口来实现,从而使子函数块对数据仅仅进行对该弹幕函数所需要的功能的处理,避免了子函数块由于功能多样性而造成与其他子函数块之间的不必要的耦合,并结合接口实现数据的传递以实现弹幕函数的整个功能。

本发明的又一个实施例,在以上实施例的基础上,该方法还具体包括:根据第四子函数块在弹幕函数中的逻辑功能上的排序为在第一子函数块与第二子函数块之间,将第一子函数块的输出接口的数据传递至第四子函数块的输入接口,并将第四子函数块的输出接口的数据传递至第二子函数块的输入接口,以增加第四子函数块在弹幕函数中对应的校验功能。

具体的,当弹幕函数中需要增加一个校验的功能,确定实现该校验功能的第四子函数块在弹幕函数中的逻辑功能上的排序为在第一子函数块与第二子函数块之间,将原来的第一子函数块的输出接口的数据传递至第二子函数块的输入接口的数据传递方式变更为将第一子函数块的输出接口的数据传递至第四子函数块的输入接口,并将第四子函数块的输出接口的数据传递至第二子函数块的输入接口,从而在第一子函数块实现的功能和第二子函数块实现的功能之间增加了第四子函数块实现的校验功能,进而将该校验功能添加到弹幕函数中。这样,无需修改弹幕函数中的代码,仅通过调整子函数块接口之间的数据传递关系就实现了对弹幕函数功能的扩展。

本实施例通过调整弹幕函数中子函数块接口之间的数据传递关系,实现了对弹幕函数校验功能增加,在无需对函数中的代码进行大范围的修改的条件下,实现了对弹幕函数功能的扩展。

作为本发明的又一个实施例,如图2,提供一种函数的优化处理装置,包括:划分模块10、封装模块20和接口设置模块30,其中:

划分模块10用于将函数内的代码按功能分成若干个代码段;

封装模块20用于将每个代码段封装为子函数块,根据对应代码段的功能给子函数块定义含有接口的提供者类;

接口设置模块30用于通过提供者类给对应的子函数块设置接口,使子函数块之间的数据传递通过接口实现。

具体的,在一些函数中,函数实现的功能非常复杂,在函数内部往往需要划分成多个子功能,通过多个子功能共同完成一个复杂的功能。函数中的每个子功能也是由特定的代码来实现的,在本实施例中,划分模块10将函数内的代码按功能分成若干个代码段,每个代码段实现一项功能。

同时,封装模块20将上述的代码段封装起来,并将封装起来的代码段定义为子函数块,封装模块20给每个子函数块定义一个提供者类,提供者类具有设置接口的功能,子函数块之间仅通过对应的提供者类设置的接口发生交互,不同子函数块之间的耦合是通过接口来实现的,并且由于子函数块内的代码被封装起来,因此,不同子函数块内的代码之间不存在耦合性。

接口设置模块30将提供者类为对应的子函数块设置的接口设计成具有数据传递的功能,不同子函数块之间分别通过各自对应的提供者类设置的接口实现数据的传递,并通过数据的传递实现多个子函数块的功能的组合,达到共同完成一个复杂的功能的目的。

本实施例通过划分模块将函数内的代码按功能分成若干个代码段,封装模块将每个代码段封装为子函数块,然后根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类,接口设置模块通过提供者类给子函数块设置接口并实现子函数块之间的数据传递,达到了在最大程度上减弱函数中代码之间的耦合性的目的,从而增加了函数的可维护性和内部子函数块的重复利用性,同时也提高了函数的可扩展性。

本发明上述各实施例提供的函数的优化处理方法和装置,通过将函数内的代码按功能分成若干个代码段,并将每个代码段封装为子函数块,然后根据对应代码段的功能给子函数块定义含有设置接口功能的提供者类,并通过提供者类设置的接口实现子函数块之间的数据传递,达到了在最大程度上减弱函数中代码之间的耦合性的目的,从而增加了函数的可维护性和内部子函数块的重复利用性,同时也提高了函数的可扩展性,且只需要通过较小的调整就能消除或者增加函数的部分功能。

最后说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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