CN116466915A - 一种基于MVP架构的iOS开发框架构建方法和装置 - Google Patents

一种基于MVP架构的iOS开发框架构建方法和装置 Download PDF

Info

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
Application number
CN202310271787.4A
Other languages
English (en)
Inventor
杨力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yishi Huolala Technology Co Ltd
Original Assignee
Shenzhen Yishi Huolala Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yishi Huolala Technology Co Ltd filed Critical Shenzhen Yishi Huolala Technology Co Ltd
Priority to CN202310271787.4A priority Critical patent/CN116466915A/zh
Publication of CN116466915A publication Critical patent/CN116466915A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/457Communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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架构的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开发框架构建方法的步骤。
CN202310271787.4A 2023-03-20 2023-03-20 一种基于MVP架构的iOS开发框架构建方法和装置 Pending CN116466915A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116628866A (zh) * 2023-07-26 2023-08-22 北京航空航天大学 一种用于航空发动机总体结构设计的控制框架

Cited By (2)

* Cited by examiner, † Cited by third party
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