CN111611024B - 一种iOS组件化优化方法、系统及终端 - Google Patents
一种iOS组件化优化方法、系统及终端 Download PDFInfo
- Publication number
- CN111611024B CN111611024B CN202010385672.4A CN202010385672A CN111611024B CN 111611024 B CN111611024 B CN 111611024B CN 202010385672 A CN202010385672 A CN 202010385672A CN 111611024 B CN111611024 B CN 111611024B
- Authority
- CN
- China
- Prior art keywords
- target class
- cache
- target
- name
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种iOS组件化优化方法、系统及终端,接入Mediator时,通过设置配置类的闭包实现自定义的URL校验及路由规则,设置配置类的缓存最大值控制Target类对象缓存动态管理逻辑;创建Target类时,通过遵循创建的协议以及实现协议中声明的方法,实现充要条件校验。本发明提供的iOS组件化优化方法、系统及终端,可以在无需修改Mediator源码的情况下定制自己的URL校验逻辑、路由规则、充要条件校验逻辑等功能;本发明提供的iOS组件化优化方法、系统及终端,Mediator会根据设置的缓存上限动态清理缓存,有效避免出现性能问题。
Description
技术领域
本发明涉及计算机开发技术领域,具体地,涉及一种iOS组件化优化方法、系统及终端。
背景技术
在应用程序的开发过程中,随着功能的增加,业务逻辑必然变得越来越复杂。为了避免各个业务之间的相互影响,通常采用组件化的方式进行开发,把复杂系统拆分成多个组件,分离组件边界和责任,便于独立升级和维护。
现有的Target-Action组件化方案,采用调停者模式,即所有业务组件通过依赖一个Mediator实现组件间的通信和交互:
1、各模块根据Target_Name的格式创建自己的Target类;
2、Target内根据Action_Name的格式定义自己的Action方法;
3、通过scheme://[target]/[action]?[params]的格式组装URL;
4、Mediator解析URL内的Target和Action,查找缓存内是否有对应的Target对象,若有则直接使用,无则通过Runtime生成;
5、Mediator向Tartget对象发送Action消息。
在上述组件化方案中,Mediator没有对URL进行校验,且URL的解析使用固定的规则,无法实现个性化定制的路由规则;Target缓存没有限制及相应的清理方案,容易出现性能问题。
发明内容
本发明针对现有技术中存在的上述不足,提供了一种iOS组件化优化方法、系统及终端。
本发明是通过以下技术方案实现的。
根据本发明的一个方面,提供了一种iOS组件化优化方法,包括:
S1,各模块根据Target_Name的命名格式创建自己的Target类;
S2,Target类内根据Action_Name的命名格式定义及实现自己的Action方法;
S3,通过scheme://[target]/[action]?[params]的格式组装URL,其中params表示Target类对象执行Action方法时所需的参数集合;
S4,Mediator根据S3中的格式解析URL,获取Target类名称和Action方法名称及params参数集合;其中,解析URL的过程,包括:
为Mediator创建一个全局的配置类(MediatorConfiguration),配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,实现自定义的URL校验逻辑以及路由规则,并为配置类声明一个数值类型的属性,设置Target类对象缓存字典的缓存最大值;同时,在配置类中创建一个协议(MediatorPerformCircleProtocol)的声明,并声明一个协议方法,方法返回true或false值,实现充要条件校验逻辑;
S5,Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象:
若有,则直接获取;
若无,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
S6,Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
优选地,所述S4中,配置类使用单例模式设计。
优选地,所述S4中,针对URL解析过程,在解析前检查配置类对象是否实现了声明的闭包:
若已实现,则执行闭包程序并返回Target类名称和Action方法名称;
若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
优选地,所述S5中,Target类对象的缓存逻辑采用动态管理逻辑,包括:
-若未命中缓存,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典,同时,将当前时间作为其最近访问时间加入缓存字典以及将当前访问次数n加入缓存字典;
-若命中缓存,则获取Target类对象,同时,将当前时间作为其最近访问时间更新入缓存字典以及将当前访问次数n+1更新入缓存字典;
-加入缓存时检查当前缓存字典的缓存数量是否大于等于配置类对象的缓存最大值:
若是,则遍历当前缓存字典,查询最近访问时间最久远且访问次数最少的缓存对象,并将其移出缓存;
若否,则不清理缓存。
优选地,所述S6中,Action方法的执行过程,包括:
在执行之前检查S5中获取到的Target类对象是否遵循了创建的协议,且是否实现了协议中声明的方法:
若是,则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回值为ture则执行,若返回值为false则不执行;
若否,则直接执行Action方法。
根据本发明的另一个方面,提供了一种iOS组件化优化系统,包括:
Target类创建模块,所述Target类创建模块用于各模块根据Target_Name的命名格式创建自己的Target类;
Action方法创建模块,所述Action方法创建模块用于Target类内根据Action_Name的命名格式定义及实现自己的Action方法;
URL组装模块,所述URL组装模块定义scheme://[target]/[action]?[params]的格式,通过scheme://[target]/[action]?[params]的格式组装URL,其中params表示Target类对象执行Action方法时所需的参数集合;
Mediator引入模块,所述Mediator引入模块用于Mediator根据URL组装模块中定义的格式解析URL,获取Target类名称和Action方法名称及params参数集合;其中,在解析URL的过程,为Mediator创建一个全局的配置类(MediatorConfiguration),配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,实现自定义的URL校验逻辑以及路由规则,并为配置类声明一个数值类型的属性,设置Target类对象缓存字典的缓存最大值;同时,在配置类中创建一个协议(MediatorPerformCircleProtocol)的声明,并声明一个协议方法,方法返回true或false值,实现充要条件校验逻辑;
Target类对象创建模块,所述Target类对象创建模块用于Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象:若有,则直接获取;若无,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
Action方法执行模块,所述Action方法执行模块用于Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
优选地,所述Mediator引入模块中:
配置类使用单例模式设计;和/或
针对URL解析过程,在解析前检查配置类对象是否实现了声明的闭包:若已实现,则执行闭包程序并返回Target类名称和Action方法名称;若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
优选地,所述Mediator引入模块中,Target类对象的缓存逻辑采用动态管理逻辑。
优选地,所述Action方法执行模块中,Action方法在执行之前检查Mediator引入模块中获取到的Target类对象是否遵循了创建的协议,且是否实现了协议中声明的方法:若是,则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回值为ture则执行,若返回值为false则不执行;若否,则直接执行Action方法。
根据本发明的第三个方面,提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,所述处理器执行所述计算机程序时能够用于执行上述任一项所述的方法。
根据本发明的第四个方面,提供了另一种终端,包括存储器、处理器及存储在存储器上并可通过处理器运行上述任一项所述的系统。
优选地,所述系统可用于执行上述任一项所述的方法。
与现有技术相比,本发明具有如下的有益效果:
1、本发明提供的iOS组件化优化方法、系统及终端,接入Mediator时,通过设置配置类的闭包实现自定义的URL校验及路由规则,设置配置类的缓存最大值控制Target类对象缓存动态管理逻辑;创建Target类时,通过遵循创建的协议以及实现协议中声明的方法,实现充要条件校验;因此,本发明可以在无需修改Mediator源码的情况下定制自己的URL校验逻辑、路由规则、充要条件校验逻辑等功能。
2、本发明提供的iOS组件化优化方法、系统及终端,Mediator会根据设置的缓存上限动态清理缓存,有效避免出现性能问题。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例所提供的iOS组件化优化方法流程图。
图2为本发明实施例所提供的iOS组件化优化系统结构框图。
具体实施方式
下面对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
本发明实施例提供了一种iOS组件化优化方法,如图1所示,包括如下步骤:
步骤S1、各模块根据Target_Name的命名格式创建自己的Target类;
步骤S1实现如下功能:Mediator根据传入的Target名称和固定的命名规则创建Target类对象;
步骤S2,Target内根据Action_Name的命名格式定义及实现自己的Action方法;
步骤S2实现如下功能:Mediator根据传入的Action名称和固定的命名规则获取Action方法名,并向步骤S1中获取的Target对象发送执行该方法的命令;
步骤S3,通过scheme://[target]/[action]?[params]的格式组装URL;其中params表示Target类对象执行Action方法时所需的参数集合;
步骤S3实现如下功能:Mediator向Target对象发送执行方法的命令时传入参数集合,Action方法执行时通过解析参数集合获取所需参数;
步骤S4,Mediator根据步骤S3中的格式解析URL,获取Target类名称和Action方法名称及params参数集合;
步骤S5,Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象,若有则直接获取,无则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
步骤S6、Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
其中:
步骤S4中的URL解析过程(M01),包括:
为Mediator创建一个全局的配置类(MediatorConfiguration),配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,所述属性用于实现自定义的URL校验逻辑、路由规则(见M02),并为配置类声明一个数值类型的属性,用于设置Target类对象缓存字典的缓存最大值(用于M03)。并在配置类中创建一个协议(MediatorPerformCircleProtocol)的声明,并声明一个协议方法,方法返回true或false,用于实现充要条件校验逻辑(见M04)。
接入者通过对配置类的闭包的编码来实现自定义的URL校验逻辑及路由规则。
作为一优选实施例,M01中创建的配置类使用单例模式设计。
作为一优选实施例,M02具体为:
针对步骤S4中的URL解析过程,在解析前检查M01中的配置类对象是否实现了M01中声明的闭包,若已实现,则执行闭包程序并返回Target类名称和Action方法名称,若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
作为一优选实施例,步骤S5中,在Target类对象的缓存逻辑中添加缓存的动态管理逻辑(M03),包括:
-若未命中缓存,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典,同时将当前时间作为其最近访问时间加入缓存字典,以及将当前访问次数(如1)加入缓存字典;
-若命中缓存,则获取Target类对象,同时将当前时间作为其最近访问时间更新入缓存字典,以及将当前访问次数+1(如1+1)更新入缓存字典;
-加入缓存时检查当前缓存字典的缓存数量是否大于等于M01中配置类对象的缓存最大值,若是,则遍历当前缓存字典,查询最近访问时间最久远且访问次数最少的缓存对象,将其移出缓存;若否,则不清理缓存。
作为一优选实施例,步骤S6中,Action方法的执行过程(M04),包括:
针对S06的Action方法执行过程,在执行之前检查S05中获取到的Target类对象是否遵循了M01中声明的协议,且是否实现了协议中声明的方法,若是则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回ture则执行,返回false则不执行;若否,则直接执行Action方法。
下面结合一具体应用实例,对本发明实施例提供的iOS组件化优化方法进一步详细描述。
在一个iOS App中,需要完成如下组件化方案:
1、实现模块A(ModuleA)的开发;
2、模块A分别提供获取页面1、页面2、页面3的方法B(ActionB)、方法C(ActionC)、方法D(ActionD);
3、调用模块A的方法必须登录;
4、使用scheme://startapp/模块A/[action]?[params]的URL格式访问模块A;
5、Target类对象缓存最大值为10;
结合本发明实施例提供的iOS组件化优化方法,上述组件化方法的实现步骤为:
1、引入Mediator及M01中创建的配置类(MediatorConfiguration);
2、创建属于模块A的Target类(Target_ModuleA),并声明实现方法B(Action_ActionB)、方法C(Action_ActionC)、方法D(Action_ActionD);
3、Target类(Target_ModuleA)遵循M01中声明的协议(MediatorPerformCircleProtocol),并实现协议中声明的方法(具体实现为判断用户是否登录,已登录返回ture,未登录返回false),此处为了实现需求3(即充要条件校验,工作过程见M04);
4、在App启动时,获取配置类(MediatorConfiguration)的单例对象,设置其闭包属性的实现(即解析需求4中约定的URL的实现,并返回解析得到的Target类名称和Action方法名称),此处为了实现需求4(即自定义路由规则,工作过程见M02);
5、在App启动时,获取配置类(MediatorConfiguration)的单例对象,设置其最大缓存属性为10,此处为了实现需求5(工作过程见M03);
6、至此实现上述需求,可根据需求约定的URL格式通过Mediator访问模块A。
基于本发明实施例提供的iOS组件化优化方法,本发明实施例同时提供了一种iOS组件化优化系统,如图2所示,包括:
Target类创建模块,Target类创建模块用于各模块根据Target_Name的命名格式创建自己的Target类;
Action方法创建模块,Action方法创建模块用于Target类内根据Action_Name的命名格式定义及实现自己的Action方法;
URL组装模块,URL组装模块定义scheme://[target]/[action]?[params]的格式,通过scheme://[target]/[action]?[params]的格式组装URL,其中params表示Target类对象执行Action方法时所需的参数集合;
Mediator引入模块,Mediator引入模块用于Mediator根据URL组装模块中定义的格式解析URL,获取Target类名称和Action方法名称及params参数集合;其中,在解析URL的过程,为Mediator创建一个全局的配置类(MediatorConfiguration),配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,该属性用于实现自定义的URL校验逻辑以及路由规则,并为配置类声明一个数值类型的属性,设置Target类对象缓存字典的缓存最大值;同时,在配置类中创建一个协议(MediatorPerformCircleProtocol)的声明,并声明一个协议方法,方法返回true或false值,实现充要条件校验逻辑;
Target类对象创建模块,Target类对象创建模块用于Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象:若有,则直接获取;若无,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
Action方法执行模块,Action方法执行模块用于Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
进一步地,iOS组件化优化系统可以用于执行iOS组件化优化方法。
作为一优选实施例,Mediator引入模块中:
配置类使用单例模式设计;和/或
针对URL解析过程,在解析前检查配置类对象是否实现了声明的闭包:若已实现,则执行闭包程序并返回Target类名称和Action方法名称;若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
作为一优选实施例,Mediator引入模块中,Target类对象的缓存逻辑采用动态管理逻辑。
作为一优选实施例,Action方法执行模块中,Action方法在执行之前检查Mediator引入模块中获取到的Target类对象是否遵循了创建的协议,且是否实现了协议中声明的方法:若是,则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回值为ture则执行,若返回值为false则不执行;若否,则直接执行Action方法。
基于本发明实施例提供的iOS组件化优化方法,本发明实施例同时提供了一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,处理器执行计算机程序时能够用于执行上述任一项的的iOS组件化优化方法。
可选地,存储器,用于存储程序;存储器,可以包括易失性存储器(英文:volatilememory),例如随机存取存储器(英文:random-access memory,缩写:RAM),如静态随机存取存储器(英文:static random-access memory,缩写:SRAM),双倍数据率同步动态随机存取存储器(英文:Double Data Rate Synchronous Dynamic Random Access Memory,缩写:DDR SDRAM)等;存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory)。存储器62用于存储计算机程序(如实现上述方法的应用程序、功能模块等)、计算机指令等,上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
上述的计算机程序、计算机指令等可以分区存储在一个或多个存储器中。并且上述的计算机程序、计算机指令、数据等可以被处理器调用。
处理器,用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
处理器和存储器可以是独立结构,也可以是集成在一起的集成结构。当处理器和存储器是独立结构时,存储器、处理器可以通过总线耦合连接。
基于本发明实施例提供的iOS组件化优化方法,本发明实施例同时提供了另一种终端,包括存储器、处理器及存储在存储器上并可通过处理器运行上述任一项的的iOS组件化优化系统。
进一步地,iOS组件化优化系统能够用于执行iOS组件化优化方法。
本发明上述实施例提供的iOS组件化优化方法、系统及终端,接入Mediator时,通过设置配置类的闭包实现自定义的URL校验及路由规则(执行过程见M02),设置配置类的缓存最大值控制Target类对象缓存动态管理逻辑(执行过程见M03);接入Mediator时,通过设置配置类的闭包实现自定义的URL校验及路由规则(执行过程见M02),设置配置类的缓存最大值控制Target类对象缓存动态管理逻辑(执行过程见M03);因此,本发明可以在无需修改Mediator源码的情况下定制自己的URL校验逻辑、路由规则、充要条件校验逻辑等功能。
本发明上述实施例提供的iOS组件化优化方法、系统及终端,Mediator会根据设置的缓存上限动态清理缓存,有效避免出现性能问题。
需要说明的是,本发明提供的方法中的步骤,可以利用系统中对应的模块、装置、单元等予以实现,本领域技术人员可以参照系统的技术方案实现方法的步骤流程,即,系统中的实施例可理解为实现方法的优选例,在此不予赘述。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (10)
1.一种iOS组件化优化方法,其特征在于,包括:
S1,各模块根据Target_Name的命名格式创建自己的Target类;
S2,Target类内根据Action_Name的命名格式定义及实现自己的Action方法;
S3,通过scheme://[target]/[action]?[params]的格式组装URL,其中params表示Target类对象执行Action方法时所需的参数集合;
S4,Mediator根据S3中的格式解析URL,获取Target类名称和Action方法名称及params参数集合;其中,解析URL的过程,包括:
为Mediator创建一个全局的配置类,配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,实现自定义的URL校验逻辑以及路由规则,并为配置类声明一个数值类型的属性,设置Target类对象缓存字典的缓存最大值;同时,在配置类中创建一个协议的声明,并声明一个协议方法,方法返回true或false值,实现充要条件校验逻辑;
S5,Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象:
若有,则直接获取;
若无,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
S6,Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
2.根据权利要求1所述的iOS组件化优化方法,其特征在于,所述S4中,配置类使用单例模式设计。
3.根据权利要求1所述的iOS组件化优化方法,其特征在于,所述S4中,针对URL解析过程,在解析前检查配置类对象是否实现了声明的闭包:
若已实现,则执行闭包程序并返回Target类名称和Action方法名称;
若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
4.根据权利要求1所述的iOS组件化优化方法,其特征在于,所述S5中,Target类对象的缓存逻辑采用动态管理逻辑,包括:
-若未命中缓存,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典,同时,将当前时间作为其最近访问时间加入缓存字典以及将当前访问次数n加入缓存字典;
-若命中缓存,则获取Target类对象,同时,将当前时间作为其最近访问时间更新入缓存字典以及将当前访问次数n+1更新入缓存字典;
-加入缓存时检查当前缓存字典的缓存数量是否大于等于配置类对象的缓存最大值:
若是,则遍历当前缓存字典,查询最近访问时间最久远且访问次数最少的缓存对象,并将其移出缓存;
若否,则不清理缓存。
5.根据权利要求1所述的iOS组件化优化方法,其特征在于,所述S6中,Action方法的执行过程,包括:
在执行之前检查S5中获取到的Target类对象是否遵循了创建的协议,且是否实现了协议中声明的方法:
若是,则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回值为ture则执行,若返回值为false则不执行;
若否,则直接执行Action方法。
6.一种iOS组件化优化系统,其特征在于,包括:
Target类创建模块,所述Target类创建模块用于各模块根据Target_Name的命名格式创建自己的Target类;
Action方法创建模块,所述Action方法创建模块用于Target类内根据Action_Name的命名格式定义及实现自己的Action方法;
URL组装模块,所述URL组装模块定义scheme://[target]/[action]?[params]的格式,通过scheme://[target]/[action]?[params]的格式组装URL,其中params表示Target类对象执行Action方法时所需的参数集合;
Mediator引入模块,所述Mediator引入模块用于Mediator根据URL组装模块中定义的格式解析URL,获取Target类名称和Action方法名称及params参数集合;其中,在解析URL的过程,为Mediator创建一个全局的配置类(MediatorConfiguration),配置类的对象作为Mediator的属性存在,为配置类声明一个闭包作为属性,实现自定义的URL校验逻辑以及路由规则,并为配置类声明一个数值类型的属性,设置Target类对象缓存字典的缓存最大值;同时,在配置类中创建一个协议(MediatorPerformCircleProtocol)的声明,并声明一个协议方法,方法返回true或false值,实现充要条件校验逻辑;
Target类对象创建模块,所述Target类对象创建模块用于Mediator根据Target类名称在缓存字典中查询是否有对应的Target类对象:若有,则直接获取;若无,则根据Target类名称通过Runtime程序创建Target类对象,并将其添加进缓存字典;
Action方法执行模块,所述Action方法执行模块用于Mediator向Tartget类对象发送执行Action方法的命令,并传入params参数集合。
7.根据权利要求6所述的iOS组件化优化系统,其特征在于,所述Mediator引入模块中:
配置类使用单例模式设计;和/或
针对URL解析过程,在解析前检查配置类对象是否实现了声明的闭包:若已实现,则执行闭包程序并返回Target类名称和Action方法名称;若未实现,则执行默认的解析程序获得Target类名称和Action方法名称。
8.根据权利要求6所述的iOS组件化优化系统,其特征在于,所述Mediator引入模块中,Target类对象的缓存逻辑采用动态管理逻辑。
9.根据权利要求6所述的iOS组件化优化系统,其特征在于,所述Action方法执行模块中,Action方法在执行之前检查Mediator引入模块中获取到的Target类对象是否遵循了创建的协议,且是否实现了协议中声明的方法:若是,则向Target类对象发送执行该协议方法的命令,根据方法执行的返回值判断是否继续执行Action方法,若返回值为ture则执行,若返回值为false则不执行;若否,则直接执行Action方法。
10.一种终端,包括存储器、处理器及存储在存储器上并能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时能够用于执行上权利要求1至5中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010385672.4A CN111611024B (zh) | 2020-05-09 | 2020-05-09 | 一种iOS组件化优化方法、系统及终端 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010385672.4A CN111611024B (zh) | 2020-05-09 | 2020-05-09 | 一种iOS组件化优化方法、系统及终端 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111611024A CN111611024A (zh) | 2020-09-01 |
| CN111611024B true CN111611024B (zh) | 2022-10-11 |
Family
ID=72200093
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010385672.4A Active CN111611024B (zh) | 2020-05-09 | 2020-05-09 | 一种iOS组件化优化方法、系统及终端 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111611024B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114139738A (zh) * | 2021-11-23 | 2022-03-04 | 浪潮通信信息系统有限公司 | 一种移动通信政企运维系统可视化组件实现方法及系统 |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6012067A (en) * | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
| CN1630853A (zh) * | 2001-10-30 | 2005-06-22 | 皇家飞利浦电子股份有限公司 | 用于构造分布式软件成分的方法 |
| EP1898553A1 (en) * | 2006-08-31 | 2008-03-12 | Nokia Siemens Networks Gmbh & Co. Kg | Generic network configuration management with XML |
| US9432484B1 (en) * | 2013-12-19 | 2016-08-30 | Emc Corporation | CIM-based data storage management system having a restful front-end |
| CN107707614A (zh) * | 2017-08-16 | 2018-02-16 | 深圳市丰巢科技有限公司 | 基于统跳协议的app路由实现方法、设备及存储介质 |
| CN108255495A (zh) * | 2018-01-31 | 2018-07-06 | 中国银行股份有限公司 | 一种基于Mediator的组件化方法及系统 |
| WO2018170504A1 (en) * | 2017-03-17 | 2018-09-20 | Labyrinth Research Llc | Unified control of privacy-impacting devices |
| CN109643277A (zh) * | 2016-09-26 | 2019-04-16 | 英特尔公司 | 用于中介传递和共享存储器页合并的装置和方法 |
| CN109669786A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 接口调用方法、设备、装置及计算机可读存储介质 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060155830A1 (en) * | 2004-11-12 | 2006-07-13 | International Business Machines Corporation | Configuration mediator for a multi-component software solution environment |
-
2020
- 2020-05-09 CN CN202010385672.4A patent/CN111611024B/zh active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6012067A (en) * | 1998-03-02 | 2000-01-04 | Sarkar; Shyam Sundar | Method and apparatus for storing and manipulating objects in a plurality of relational data managers on the web |
| CN1630853A (zh) * | 2001-10-30 | 2005-06-22 | 皇家飞利浦电子股份有限公司 | 用于构造分布式软件成分的方法 |
| EP1898553A1 (en) * | 2006-08-31 | 2008-03-12 | Nokia Siemens Networks Gmbh & Co. Kg | Generic network configuration management with XML |
| US9432484B1 (en) * | 2013-12-19 | 2016-08-30 | Emc Corporation | CIM-based data storage management system having a restful front-end |
| CN109643277A (zh) * | 2016-09-26 | 2019-04-16 | 英特尔公司 | 用于中介传递和共享存储器页合并的装置和方法 |
| WO2018170504A1 (en) * | 2017-03-17 | 2018-09-20 | Labyrinth Research Llc | Unified control of privacy-impacting devices |
| CN107707614A (zh) * | 2017-08-16 | 2018-02-16 | 深圳市丰巢科技有限公司 | 基于统跳协议的app路由实现方法、设备及存储介质 |
| CN108255495A (zh) * | 2018-01-31 | 2018-07-06 | 中国银行股份有限公司 | 一种基于Mediator的组件化方法及系统 |
| CN109669786A (zh) * | 2018-09-26 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 接口调用方法、设备、装置及计算机可读存储介质 |
Non-Patent Citations (4)
| Title |
|---|
| Building mediators from components;J. Todd ET AL;《Proceedings of the International Symposium on Distributed Objects and Applications》;20020806;全文 * |
| Mediator模型的SystemC代码自动生成;张琦等;《计算机工程与科学》;20190515(第05期);全文 * |
| 基于Mediator模式的参数控制法;王子敬等;《江南大学学报(自然科学版)》;20060430(第02期);全文 * |
| 设计模式在水文信息推送APP架构设计中的应用;周波等;《长江工程职业技术学院学报》;20171220(第04期);全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111611024A (zh) | 2020-09-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10380139B2 (en) | SQL interceptor for use with third party data analytics packages | |
| CN1879082B (zh) | 用于编译软件的方法和装置 | |
| US20060020689A1 (en) | Index-based parameter access and software for using the same | |
| US20180285470A1 (en) | A Mobile Web Cache Optimization Method Based on HTML5 Application Caching | |
| CN111800459A (zh) | 下载任务异步处理方法、装置、系统和存储介质 | |
| CN109597618B (zh) | 程序开发方法、装置、计算机设备及存储介质 | |
| CN108369591A (zh) | 用于缓存和参数化ir的系统和方法 | |
| CN112115041B (zh) | 应用程序的动态埋点方法、装置、存储介质及计算机设备 | |
| CN103164193A (zh) | 一种模板的渲染方法及装置 | |
| WO2018035799A1 (zh) | 数据查询方法、应用和数据库服务器、中间件及系统 | |
| CN107247777A (zh) | 一种基于数据库逆向统计的报表展示方法及系统 | |
| CN112486789A (zh) | 一种日志分析系统、方法及装置 | |
| CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
| CN111611024B (zh) | 一种iOS组件化优化方法、系统及终端 | |
| EP1704475B1 (en) | System and method for dynamically optimized message processing | |
| CN112650502A (zh) | 批处理任务处理方法、装置、计算机设备和存储介质 | |
| CN108874837B (zh) | 数据库分库方法、装置、中间件及存储介质和电子设备 | |
| CN115842733A (zh) | 资源共享方法及微前端系统、应用、计算机可读存储介质 | |
| CN113608742A (zh) | 检测方法、代码包处理方法、运行控制方法及计算设备 | |
| US20220272171A1 (en) | Method and apparatus for subscribing to resource | |
| CN118151945A (zh) | 数据处理方法、装置、设备及存储介质 | |
| WO2025001183A1 (zh) | 数据处理方法、电子设备和存储介质 | |
| CN106383869A (zh) | 一种获取用户行为信息的方法及装置 | |
| CN115033397B (zh) | 接口调用方法、装置、设备及存储介质 | |
| Chiang et al. | Two-stage diff: An efficient dynamic software update mechanism for wireless sensor networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |