一种基于MVP架构的iOS开发框架构建方法和装置制造方法及图纸

技术编号:38265994 阅读:10 留言:0更新日期:2023-07-27 10:23
本发明专利技术提供了一种基于MVP架构的iOS开发框架构建方法,iOS开发框架包括Model层、View层和Presenter层,方法包括:在视图控制器ViewController中创建上下文Context对象,绑定View层、Presenter层和Context对象之间的依赖关系;给基类NSObject创建分类并添加Context对象属性;确认业务前缀后执行脚本自动生成MVP文件结构。本发明专利技术在MVP架构上增加了上下文Context对象,View层、Presenter层和Context对象绑定依赖关系后,实现了通过Context对象任意角色进行快速的相互访问,通过给NSObject基类创建分类并添加Context对象属性,使任意子视图都可以访问Context对象来访问任意角色的数据,子视图不需要再引入其他文件,减少了不同业务之间的耦合。本发明专利技术还可以通过脚本自动生成MVP文件结构,无需开发人员手动创建,提高了开发效率。提高了开发效率。提高了开发效率。

【技术实现步骤摘要】
一种基于MVP架构的iOS开发框架构建方法和装置


[0001]本专利技术涉及计算机
,尤其涉及一种基于MVP架构的iOS开发框架构建方法和装置。

技术介绍

[0002]MVP,即Model View Presenter,分别表示Model数据层、View视图层和Presenter发布层,其中View层和Model层之间的通信是通过Presenter层来进行的,所有的交互都发生在Presenter层内部,MVP架构分离了View层和Model层,Presenter层充当桥梁,View层负责更新界面。一般的MVP架构中,业务逻辑存放在Presenter层,会存在不同类文件之间数据和事件通信不够直接,产生大量的胶水代码,维护成本大的问题。

技术实现思路

[0003]本专利技术的目的在于提供一种基于MVP架构的iOS开发框架构建方法和装置,旨在解决现有技术中不同类文件之间数据和事件通信不够直接,产生大量的胶水代码,维护成本大的问题。
[0004]第一方面,本专利技术提供了一种基于MVP架构的iOS开发框架构建方法,iOS开发框架包括Model层、View层和Presenter层,该方法包括:
[0005]S101、在视图控制器ViewController中创建上下文Context对象,绑定View层、Presenter层和Context对象之间的依赖关系;
[0006]S102、给基类NSObject创建分类并添加Context对象属性;
[0007]S103、确认业务前缀后执行脚本自动生成MVP文件结构。
[0008]第二方面,本专利技术提供了一种基于MVP架构的iOS开发框架构建装置,iOS开发框架包括Model层、View层和Presenter层,该装置包括:
[0009]Context对象创建模块,用于在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系;
[0010]分类创建模块,用于给基类NSObject创建分类并添加Context对象属性;
[0011]执行模块,用于确认业务前缀后执行脚本自动生成MVP文件结构。
[0012]第三方面,本专利技术提供了一种计算机设备,包括:
[0013]一个或多个处理器;
[0014]存储器;以及
[0015]一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上所述的基于MVP架构的iOS开发框架构建方法的步骤。
[0016]第四方面,本专利技术提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于MVP架构的iOS开发
框架构建方法的步骤。
[0017]在本专利技术中,基于MVP架构优化了iOS的开发框架,在MVP架构上增加了上下文Context对象,View层、Presenter层和Context对象绑定依赖关系后,实现了通过Context对象任意角色进行快速的相互访问,解决了此三个角色的耦合性。通过Context对象能将事件和数据传递快速传递指定对象,缩短了业务执行的链路,减少了为实现业务而编写很多的胶水代码。通过Context对象可以第一时间获取任意需要对象,进而可以得到任意的数据模型,减少的数据获取的难度。本专利技术中通过给NSObject基类创建分类并添加Context对象属性,使任意子视图都可以访问Context对象来访问任意角色的数据,子视图不需要再引入其他文件,只需要管理自己的业务逻辑,减少了不同业务之间的耦合。本专利技术还可以通过脚本自动生成MVP文件结构,无需开发人员手动创建,提高了开发效率。
附图说明
[0018]图1是本专利技术实施例一提供的基于MVP架构的iOS开发框架构建方法的流程图;
[0019]图2是本专利技术实施例二提供的装置的功能模块框图;
[0020]图3是本专利技术实施例三提供的计算机设备的结构示意图。
具体实施方式
[0021]为了使本专利技术的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。
[0022]为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。
[0023]实施例一:
[0024]如图1所示,本专利技术实施例一提供了一种基于MVP架构的iOS开发框架构建方法100,该iOS开发框架包括Model层、View层和Presenter层,方法100包括以下步骤:
[0025]S101、在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系。将Context对象与View层和Presenter层相互绑定,以便在需要的时间通过Context对象直接访问到View层或者Presenter层。具体地,在视图控制器ViewController的加载完毕的生命周期函数中创建Context对象,并自动绑定好Context对象、View层和Presenter层之间的依赖关系,将View层、Presenter层和Context对象之间的依赖逻辑封装在视图控制器ViewController的基类中来实现自动绑定,使得开发人员不需要考虑MVP架构中的文件依赖绑定的问题,从而提高开发效率。
[0026]S102、给基类NSObject创建分类并添加Context对象属性。NSObject是iOS开发中所有类的基类,给基类创建分类则所有类都可以访问分类中的属性。在一般的MVP架构下,任意子视图的通信必须一层层传递到指定视图,效率很低难以维护。本专利技术实施例中通过给NSObject创建分类,在分类中增加Context对象属性,使得每个子视图都可以访问Context对象,再通过Context对象直接访问到其他任意角色,进而可以访问任意角色(角色包括但不限于视图控制器ViewController,主视图View和Presenter层)上面的数据。每个子视图不需要再引入其他文件,只需要管理自己的业务逻辑,减少了不同业务之间的耦合。
[0027]任意子视图最终都可以访问Context对象的过程是:任意子视图首先访问父视图
来获取父视图的Context对象,通过while循环不断向上逐层遍历来获取父视图的Context对象,一旦获取到就保存为自己的属性,之后第二次访问Context对象就不用再次向上逐层遍历父视图,从而提升了效率;如果在父视图)获取不到Context对象,则逐级向上从父视图中获取,由于最终主视图View必定持有Context对象,所有任意子视图最终必定能获取到Context对象。
[0028]页面加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MVP架构的iOS开发框架构建方法,所述iOS开发框架包括Model层、View层和Presenter层,其特征在于,所述方法包括:S101、在视图控制器ViewController中创建上下文Context对象,绑定所述View层、Presenter层和所述Context对象之间的依赖关系;S102、给基类NSObject创建分类并添加所述Context对象属性;S103、确认业务前缀后执行脚本自动生成MVP文件结构。2.如权利要求1所述的方法,其特征在于,所述在视图控制器ViewController中创建上下文Context对象,具体是:在所述视图控制器ViewController的加载完毕的生命周期函数中创建所述Context对象。3.如权利要求1所述的方法,其特征在于,所述绑定View层、Presenter层和所述Context对象之间的依赖关系,具体是将所述View层、Presenter层和Context对象之间的依赖逻辑封装在所述视图控制器ViewController的基类中来实现自动绑定。4.如权利要求1所述的方法,其特征在于,所述确认业务前缀后执行脚本自动生成MVP文件结构,具体是:根据业务类型确认好业务前缀后,执行Shell脚本,输入前缀名和指定目录,在所述指定...

【专利技术属性】
技术研发人员:杨力
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1