CN116466915A - 一种基于MVP架构的iOS开发框架构建方法和装置 - Google Patents
一种基于MVP架构的iOS开发框架构建方法和装置 Download PDFInfo
- Publication number
- CN116466915A CN116466915A CN202310271787.4A CN202310271787A CN116466915A CN 116466915 A CN116466915 A CN 116466915A CN 202310271787 A CN202310271787 A CN 202310271787A CN 116466915 A CN116466915 A CN 116466915A
- Authority
- CN
- China
- Prior art keywords
- layer
- view
- context object
- mvp
- presenter
- 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.)
- Pending
Links
- 238000011161 development Methods 0.000 title claims abstract description 36
- 238000010276 construction Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 2
- 238000012790 confirmation Methods 0.000 claims 1
- 230000008878 coupling Effects 0.000 abstract description 6
- 238000010168 coupling process Methods 0.000 abstract description 6
- 238000005859 coupling reaction Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 5
- 239000003292 glue Substances 0.000 description 5
- 238000013499 data model Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/457—Communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于MVP架构的iOS开发框架构建方法,iOS开发框架包括Model层、View层和Presenter层,方法包括:在视图控制器ViewController中创建上下文Context对象,绑定View层、Presenter层和Context对象之间的依赖关系;给基类NSObject创建分类并添加Context对象属性;确认业务前缀后执行脚本自动生成MVP文件结构。本发明在MVP架构上增加了上下文Context对象,View层、Presenter层和Context对象绑定依赖关系后,实现了通过Context对象任意角色进行快速的相互访问,通过给NSObject基类创建分类并添加Context对象属性,使任意子视图都可以访问Context对象来访问任意角色的数据,子视图不需要再引入其他文件,减少了不同业务之间的耦合。本发明还可以通过脚本自动生成MVP文件结构,无需开发人员手动创建,提高了开发效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于MVP架构的iOS开发框架构建方法和装置。
背景技术
MVP,即Model View Presenter,分别表示Model数据层、View视图层和Presenter发布层,其中View层和Model层之间的通信是通过Presenter层来进行的,所有的交互都发生在Presenter层内部,MVP架构分离了View层和Model层,Presenter层充当桥梁,View层负责更新界面。一般的MVP架构中,业务逻辑存放在Presenter层,会存在不同类文件之间数据和事件通信不够直接,产生大量的胶水代码,维护成本大的问题。
发明内容
本发明的目的在于提供一种基于MVP架构的iOS开发框架构建方法和装置,旨在解决现有技术中不同类文件之间数据和事件通信不够直接,产生大量的胶水代码,维护成本大的问题。
第一方面,本发明提供了一种基于MVP架构的iOS开发框架构建方法,iOS开发框架包括Model层、View层和Presenter层,该方法包括:
S101、在视图控制器ViewController中创建上下文Context对象,绑定View层、Presenter层和Context对象之间的依赖关系;
S102、给基类NSObject创建分类并添加Context对象属性;
S103、确认业务前缀后执行脚本自动生成MVP文件结构。
第二方面,本发明提供了一种基于MVP架构的iOS开发框架构建装置,iOS开发框架包括Model层、View层和Presenter层,该装置包括:
Context对象创建模块,用于在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系;
分类创建模块,用于给基类NSObject创建分类并添加Context对象属性;
执行模块,用于确认业务前缀后执行脚本自动生成MVP文件结构。
第三方面,本发明提供了一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如上所述的基于MVP架构的iOS开发框架构建方法的步骤。
第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于MVP架构的iOS开发框架构建方法的步骤。
在本发明中,基于MVP架构优化了iOS的开发框架,在MVP架构上增加了上下文Context对象,View层、Presenter层和Context对象绑定依赖关系后,实现了通过Context对象任意角色进行快速的相互访问,解决了此三个角色的耦合性。通过Context对象能将事件和数据传递快速传递指定对象,缩短了业务执行的链路,减少了为实现业务而编写很多的胶水代码。通过Context对象可以第一时间获取任意需要对象,进而可以得到任意的数据模型,减少的数据获取的难度。本发明中通过给NSObject基类创建分类并添加Context对象属性,使任意子视图都可以访问Context对象来访问任意角色的数据,子视图不需要再引入其他文件,只需要管理自己的业务逻辑,减少了不同业务之间的耦合。本发明还可以通过脚本自动生成MVP文件结构,无需开发人员手动创建,提高了开发效率。
附图说明
图1是本发明实施例一提供的基于MVP架构的iOS开发框架构建方法的流程图;
图2是本发明实施例二提供的装置的功能模块框图;
图3是本发明实施例三提供的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
如图1所示,本发明实施例一提供了一种基于MVP架构的iOS开发框架构建方法100,该iOS开发框架包括Model层、View层和Presenter层,方法100包括以下步骤:
S101、在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系。将Context对象与View层和Presenter层相互绑定,以便在需要的时间通过Context对象直接访问到View层或者Presenter层。具体地,在视图控制器ViewController的加载完毕的生命周期函数中创建Context对象,并自动绑定好Context对象、View层和Presenter层之间的依赖关系,将View层、Presenter层和Context对象之间的依赖逻辑封装在视图控制器ViewController的基类中来实现自动绑定,使得开发人员不需要考虑MVP架构中的文件依赖绑定的问题,从而提高开发效率。
S102、给基类NSObject创建分类并添加Context对象属性。NSObject是iOS开发中所有类的基类,给基类创建分类则所有类都可以访问分类中的属性。在一般的MVP架构下,任意子视图的通信必须一层层传递到指定视图,效率很低难以维护。本发明实施例中通过给NSObject创建分类,在分类中增加Context对象属性,使得每个子视图都可以访问Context对象,再通过Context对象直接访问到其他任意角色,进而可以访问任意角色(角色包括但不限于视图控制器ViewController,主视图View和Presenter层)上面的数据。每个子视图不需要再引入其他文件,只需要管理自己的业务逻辑,减少了不同业务之间的耦合。
任意子视图最终都可以访问Context对象的过程是:任意子视图首先访问父视图来获取父视图的Context对象,通过while循环不断向上逐层遍历来获取父视图的Context对象,一旦获取到就保存为自己的属性,之后第二次访问Context对象就不用再次向上逐层遍历父视图,从而提升了效率;如果在父视图)获取不到Context对象,则逐级向上从父视图中获取,由于最终主视图View必定持有Context对象,所有任意子视图最终必定能获取到Context对象。
页面加载完毕后,每个角色都持有Context对象,且Context对象也持有了每个角色,所以每个角色可以通过Context对象直接访问到其他任意角色。
S103、确认业务前缀后执行脚本自动生成MVP文件结构,具体地,根据业务类型确认好业务前缀后,执行Shell脚本,输入前缀名(如HLLDetail)和指定目录,在指定目录下自动生成以输入的前缀名为前缀的View视图文件、Presenter文件和视图控制器ViewController文件。无需开发人员手动创建,提高了开发效率。
后续根据业务需要开发业务代码,任意文件进行数据和事件通信时,可以通过Context对象进行直接传递事件和数据,缩短了业务执行的链路,减少了为实现业务而编写很多的胶水代码。而且,通过context对象可以第一时间获取任意需要对象,进而可以得到任意的数据模型,减少的数据获取的难度,比如做数据埋点时数据的获取。
实施例二:
本发明实施例二提供了一种基于MVP架构的iOS开发框架的构建装置200,该iOS开发框架包括Model层、View层和Presenter层,装置200包括:
Context对象创建模块201,用于在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系;
分类创建模块202,用于给基类NSObject创建分类并添加Context对象属性;
执行模块203,用于确认业务前缀后执行脚本自动生成MVP文件结构。
本发明实施例二提供的基于MVP架构的iOS开发框架的构建装置与本发明实施例一提供的基于MVP架构的iOS开发框架的构建方法属于同一构思,其具体实现过程详见说明书全文,此处不再赘述。
实施例三:
如图3所示,本发明实施例三提供了一种计算机设备300,包括:
一个或多个处理器301;
存储器302;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述处理器执行所述计算机程序时实现如实施例一提供的基于MVP架构的iOS开发框架的构建方法的步骤。
实施例四:
本发明实施例四提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如实施例一提供的基于MVP架构的iOS开发框架的构建方法的步骤。
在本发明中,基于MVP架构优化了iOS的开发框架,在MVP架构上增加了上下文Context对象,View层、Presenter层和Context对象绑定依赖关系后,实现了通过Context对象任意角色进行快速的相互访问,解决了此三个角色的耦合性。通过Context对象能将事件和数据传递快速传递指定对象,缩短了业务执行的链路,减少了为实现业务而编写很多的胶水代码。通过Context对象可以第一时间获取任意需要对象,进而可以得到任意的数据模型,减少的数据获取的难度。本发明中通过给NSObject基类创建分类并添加Context对象属性,使任意子视图都可以访问Context对象来访问任意角色的数据,子视图不需要再引入其他文件,只需要管理自己的业务逻辑,减少了不同业务之间的耦合。本发明还可以通过脚本自动生成MVP文件结构,无需开发人员手动创建,提高了开发效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
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脚本,输入前缀名和指定目录,在所述指定目录下自动生成以输入的前缀名为前缀的View视图文件、Presenter文件和视图控制器ViewController文件。
5.一种基于MVP架构的iOS开发框架的构建装置,所述iOS开发框架包括Model层、View层和Presenter层,其特征在于,所述装置包括:
Context对象创建模块,用于在视图控制器ViewController中创建上下文Context对象,并绑定View层、Presenter层和Context对象之间的依赖关系;
分类创建模块,用于给基类NSObject创建分类并添加Context对象属性;
执行模块,用于确认业务前缀后执行脚本自动生成MVP文件结构。
6.一种计算机设备,包括:
一个或多个处理器;
存储器;以及
一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述的基于MVP架构的iOS开发框架构建方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的基于MVP架构的iOS开发框架构建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310271787.4A CN116466915A (zh) | 2023-03-20 | 2023-03-20 | 一种基于MVP架构的iOS开发框架构建方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310271787.4A CN116466915A (zh) | 2023-03-20 | 2023-03-20 | 一种基于MVP架构的iOS开发框架构建方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116466915A true CN116466915A (zh) | 2023-07-21 |
Family
ID=87176211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310271787.4A Pending CN116466915A (zh) | 2023-03-20 | 2023-03-20 | 一种基于MVP架构的iOS开发框架构建方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116466915A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628866A (zh) * | 2023-07-26 | 2023-08-22 | 北京航空航天大学 | 一种用于航空发动机总体结构设计的控制框架 |
-
2023
- 2023-03-20 CN CN202310271787.4A patent/CN116466915A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628866A (zh) * | 2023-07-26 | 2023-08-22 | 北京航空航天大学 | 一种用于航空发动机总体结构设计的控制框架 |
CN116628866B (zh) * | 2023-07-26 | 2023-10-27 | 北京航空航天大学 | 一种用于航空发动机总体结构设计的控制框架 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101971143B (zh) | 用于应用组件之间的自动连接的方法和设备 | |
CN108280023B (zh) | 任务执行方法、装置和服务器 | |
CN103049320A (zh) | 在浏览器中启动外部应用程序的方法和装置 | |
CN104375818A (zh) | 一种通过配置文件实现通用数据格式录入的系统及方法 | |
CN113934684B (zh) | 一种数据格式自动转换方法、装置、电子设备及存储介质 | |
CN106990960A (zh) | 代码部署方法及装置 | |
CN106910045A (zh) | 工作流引擎设计方法及系统 | |
CN100511140C (zh) | 构件化软件系统实现脚本语言调用多输出参数接口的方法 | |
CN113157345A (zh) | 前端工程自动启动方法及装置 | |
CN113672204A (zh) | 一种接口文档生成方法、系统、电子设备及存储介质 | |
CN116466915A (zh) | 一种基于MVP架构的iOS开发框架构建方法和装置 | |
CN113946323A (zh) | 基于微服务体系的在线开发方法、装置、设备及存储介质 | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN114968192A (zh) | 一种项目创建方法、装置、计算机设备及存储介质 | |
US20110161930A1 (en) | Melding of mediation flow service component architecture (sca) components | |
CN112068879B (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
CN113760733A (zh) | 一种单元测试方法和装置 | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN116400914A (zh) | 一种基于数据模型快速构建web应用的方法 | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
CN107797793B (zh) | 一种构建代理服务器框架的方法和装置 | |
CN113568603B (zh) | 组件对象创建及接口方法调用方法、终端及存储装置 | |
CN103677846A (zh) | 一种SQLite数据库开发工具包及开发方法 | |
CN107844639B (zh) | 一种项目标准结构自动生成方法及系统 | |
CN110175116B (zh) | 一种测试日期切换方法、装置及系统 |
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 |