CN105975265B - 一种基于改进型mvp模式的装置 - Google Patents

一种基于改进型mvp模式的装置 Download PDF

Info

Publication number
CN105975265B
CN105975265B CN201610284250.1A CN201610284250A CN105975265B CN 105975265 B CN105975265 B CN 105975265B CN 201610284250 A CN201610284250 A CN 201610284250A CN 105975265 B CN105975265 B CN 105975265B
Authority
CN
China
Prior art keywords
module
user
announcer
command
data
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
Application number
CN201610284250.1A
Other languages
English (en)
Other versions
CN105975265A (zh
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.)
Xiao Feng
Original Assignee
Zhang Ying Information Technology (shanghai) 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 Zhang Ying Information Technology (shanghai) Co Ltd filed Critical Zhang Ying Information Technology (shanghai) Co Ltd
Priority to CN201610284250.1A priority Critical patent/CN105975265B/zh
Publication of CN105975265A publication Critical patent/CN105975265A/zh
Application granted granted Critical
Publication of CN105975265B publication Critical patent/CN105975265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages

Abstract

本发明实施例提供了一种基于改进型MVP模式的装置,属于计算机领域,包括:视图模块,用于显示用户交互界面和数据,以及根据用户交互调用对应的命令对象;表示器模块,用于维护一个或多个命令对象模块,将所述一个或多个命令对象传递给所述视图模块以在用户交互中调用,接收来自所述一个或多个命令对象模块的结果,并根据所述结果控制所述视图模块;一个或多个命令对象模块,用于执行与用户交互关联的任务或调用对应模型模块来执行与用户交互关联的任务,以及向所述表示器模块发送结果;以及一个或多个模型模块,用于提供数据相关的操作。

Description

一种基于改进型MVP模式的装置
技术领域
本发明涉及计算机领域,特别涉及一种基于改进型MVP模式的装置。
背景技术
目前人机交互一般采用MVP(Model-View-Presenter)模式,在该模式中,模型定义了需要显示的数据或数据操作方式,视图用于显示模型中的数据以及向表示器发送数据相关的操作命令,而表示器作为中间人,协调视图和模型之间的关系,并且处理应用逻辑。但是,传统的MVP模式存在一些不足,例如,表示器与视图的关系过于紧密,表示器向视图提供一系列与视图相关的操作以用于调用,如果接口中有一个接口方法发生更改,则可能会影响到使用此接口的所有视图和表示器,不利于代码复用。
发明内容
为了解决上述问题,本发明实施例提供了基于改进型MVP模式的装置。
根据本发明的第一方面,提供了一种基于改进型MVP模式的装置,该装置包括:
视图模块,用于显示用户交互界面和数据,以及根据用户交互调用对应的命令对象;
表示器模块,用于维护一个或多个命令对象模块,将所述一个或多个命令对象传递给所述视图模块以在用户交互中调用,接收来自所述一个或多个命令对象模块的结果,并根据所述结果控制所述视图模块;
一个或多个命令对象模块,用于执行与用户交互关联的任务或调用对应模型模块来执行与用户交互关联的任务,以及向所述表示器模块发送结果;以及
一个或多个模型模块,用于提供数据相关的操作。
结合本发明的第一方面,在第一种可能的实现方式中,所述装置包括安卓系统中的装置。
结合本发明的第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述表示器模块包括活动模块,所述命令对象模块包括动作对象模块。
结合本发明的第一方面,在第三种可能的实现方式中,所述数据相关的操作包括数据的增加、查询、删除和修改中的至少一项。
结合本发明的第一方面,在第四种可能的实现方式中,所述表示器模块具体用于根据所述结果控制所述视图的用户交互界面和/或数据的显示。
通过采用基于改进型MVP模式的应用架构,可以提高系统的正交性,从而提高模块化程度和代码的可复用性,以及应用的稳定性和可维护性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的基于改进型MVP模式的装置的示意图;
图2示出了根据本发明实施例的安卓系统中基于改进型MVP模式的装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于改进型MVP模式的装置。通过在传统的MVP模式中引入命令(command)模式,将原本由表示器提供的操作接口封装成一个或多个命令对象,并由表示器来管理和维护这些命令对象。表示器将命令对象传递给对应的视图(view),视图在界面上触发操作时执行对应的命令对象,命令对象执行具体的任务或调用对应的模型(model)执行具体的任务。表示器接收来自命令对象的结果,并根据该结果控制在视图中的数据的呈现。通过采用基于改进型MVP模式的应用架构,可以提高系统的正交性,从而提高模块化程度和代码的可复用性,以及应用的稳定性和可维护性。
图1示出了根据本发明实施例的基于改进型MVP模式的装置的示意图。该装置可包括视图模块、表示器模块、一个或多个命令对象模块以及一个或多个模型模块。如图1中所示,表示器模块102用于管理一个或多个命令对象模块106,并且将一个或多个命令对象模块106传递给视图模块104,以便在视图模块104中的用户交互期间调用。此外,表示器模块102还用于接收来自一个或多个命令对象模块106的结果,并根据接收的结果控制视图模块104。具体的,表示器模块102根据接收的结果控制视图模块104中的用户交互界面和/或数据的显示。视图模块104用于显示用户交互界面和数据以及根据用户交互调用对应的命令对象模块106。命令对象模块106用于执行与用户交互关联的任务或调用对应的模型模块108来执行与用户交互关联的任务,并且将结果发送给表示器模块102。模型模块108用于提供数据相关的操作。所述数据相关的操作可包括数据的增加、查询、删除和修改中的至少一项。
图2示出了根据本发明实施例的安卓系统中基于改进型MVP模式的装置的示意图。在安卓系统中,表示器模块可以包括活动(activity)模块,命令对象模块可以包括动作(action)对象模块,视图模块可以包括视图(view)模块,并且模型模块可以包括模型(model)模块。如图2所示,该装置可包括视图模块、活动模块、一个或多个动作对象模块以及一个或多个模型模块。
视图模块用于显示用户交互界面和数据。具体的,视图模块可以采用各种形式呈现数据,例如列表、按钮、文本、图片及其组合等。本发明实施例对视图模块的具体形式不加以限定。视图模块还可用于显示各种类型的用户交互界面,例如登录界面和搜索界面等。具体的,视图模块可实现与界面相关的功能,例如界面显示、滑动、按钮事件、输入框的内容是否为空的检查等。视图模块可提供setXXAction(IAction)和setXXData(Data)系列方法,使得外部可以通过setXXData(Data)将具体数据传递给视图模块,并且可以通过setXXAction(IAction)来设置界面中的用户交互触发的事件。例如,活动模块可以通过调用setXXAction(IAction)来设置视图模块中与用户交互界面中的一个或多个用户交互事件所对应的一个或多个动作。
动作是对特定命令的封装。每一个动作对象模块可实现IAction接口。可以采用以下两种方案来定义该接口:
方案一:
IAction接口可定义为:
public interface IAction{
public void execute();
}
基类BaseAction可定义为:
在创建具体的动作类之前,还需要定义和具体动作对应的动作接口。例如要执行按钮事件,可先定义一个ButtonClickAction接口:
public interface ButtonClickAction extends IAction{
public void setParamter(String buttonName);
}
在ButtonClickAction接口中定义了具体的参数类型和个数。
然后可创建一个具体的LeaderInfoButtonClickAction类,继承自BaseAction并实现ButtonClickAction接口。
在视图模块中需要接受ButtonClickAction类型的动作对象模块,并且视图模块传递参数给动作对象模块以执行命令。
方案一的优点是可以明确地定义传递参数的类型和个数。
方案二:
IAction接口定义为:
public interface IAction{
public void execute(Map<String,Object>params);
}
在IAction的execute中用Map来封装传入的参数。
基类BaseAction:
创建具体的动作类时,只需要简单地继承BaseAction,实现execute方法。在视图模块中只接受IAction类型的动作对象模块。
方案二的优点是提供较高程度的抽象,实现较为简单,更改接口参数对视图影响小,保证了视图和动作更高程度的可复用性。
动作对象模块可执行与用户交互关联的任务,或者调用模型模块来执行与用户交互关联的任务。在动作对象模块执行完任务后,将结果发送给活动模块。
活动模块用于将具体的动作对象模块传递给视图。具体的,活动可通过setXXAction(IAction)来将一个或多个动作对象模块传递给视图模块,以便视图模块在用户交互中调用。此外,活动模块还注册有BroadcastReceiver,以此来接收动作模块完成任务后发来的结果。随后,活动模块可在BroadcastReceiver中处理该结果,并反馈到视图模块上。具体的,活动模块可根据结果来控制视图模块中的用户交互界面和/或数据的显示。例如,活动模块可以通过setXXData(Data)将结果作为数据发送给视图模块。
注册BroadcastReceiver可以采取动态注册或静态注册。采用动态注册时,可以在onResume方法中注册。采用静态注册时,可以在AndroidManifest文件中注册。注册时可指定动作,使得只有匹配动作的广播消息才会被接收。本发明实施例对BroadcastReceiver的具体注册方法不加以限定。
模型模块用于提供数据相关的操作,例如一些底层的网络和数据库操作等,以此来完成数据的增加、查询、删除和修改等操作中的至少一项操作。
通过在安卓系统中采用基于改进型MVP模式的装置,可以提高系统的正交性,从而提高模块化程度和代码的可复用性,以及应用的稳定性和可维护性。要说明的是,安卓系统仅是示例,本发明实施例公开的基于改进型MVP模型的装置也可适用于其他系统,例如iOS系统,WinPhone系统等,本发明实施例对此不加以限定。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种基于改进型MVP模式的装置,其特征在于,所述装置包括:
视图模块,用于显示用户交互界面和数据,以及根据用户交互调用对应的命令对象,在MVP模式中引入命令模式,将原本由表示器提供的操作接口封装成一个或多个命令对象;
表示器模块,用于维护一个或多个命令对象模块,将所述一个或多个命令对象传递给所述视图模块以在用户交互中调用,接收来自所述一个或多个命令对象模块的结果,并根据所述结果控制所述视图模块;
一个或多个命令对象模块,用于执行与用户交互关联的任务或调用对应模型模块来执行与用户交互关联的任务,以及向所述表示器模块发送结果;以及
一个或多个模型模块,用于提供数据相关的操作。
2.根据权利要求1所述的装置,其特征在于,所述装置适用于安卓系统。
3.根据权利要求2所述的装置,其特征在于,所述表示器模块包括活动模块,所述命令对象模块包括动作对象模块。
4.根据权利要求1所述的装置,其特征在于,所述数据相关的操作包括数据的增加、查询、删除和修改中的至少一项。
5.根据权利要求1所述的装置,其特征在于,所述表示器模块具体用于根据所接收的来自一个或多个命令对象模块的所述结果控制所述视图的用户交互界面和/或数据的显示。
CN201610284250.1A 2016-04-29 2016-04-29 一种基于改进型mvp模式的装置 Active CN105975265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610284250.1A CN105975265B (zh) 2016-04-29 2016-04-29 一种基于改进型mvp模式的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610284250.1A CN105975265B (zh) 2016-04-29 2016-04-29 一种基于改进型mvp模式的装置

Publications (2)

Publication Number Publication Date
CN105975265A CN105975265A (zh) 2016-09-28
CN105975265B true CN105975265B (zh) 2019-04-12

Family

ID=56994331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610284250.1A Active CN105975265B (zh) 2016-04-29 2016-04-29 一种基于改进型mvp模式的装置

Country Status (1)

Country Link
CN (1) CN105975265B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107704393B (zh) * 2017-09-29 2018-08-21 武汉斗鱼网络科技有限公司 数据测试方法、装置及电子设备
CN109189368B (zh) * 2018-07-11 2021-11-26 武汉斗鱼网络科技有限公司 一种构建基于mvp架构的快速开发框架的方法和框架
CN116820634A (zh) * 2022-03-21 2023-09-29 Oppo广东移动通信有限公司 应用处理装置、控制方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232505A (zh) * 2008-01-17 2008-07-30 中山大学 基于mvc架构的ria分层框架的接口模型
CN102591627A (zh) * 2011-01-13 2012-07-18 腾讯科技(深圳)有限公司 一种Flash应用程序开发系统及应用请求处理方法
CN102650952A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 基于mvc框架的建模工具命令调用方法及系统
CN104267944A (zh) * 2014-09-22 2015-01-07 浪潮软件集团有限公司 一种基于Spring的MVC模式优化系统
CN104281441A (zh) * 2013-07-09 2015-01-14 腾讯科技(深圳)有限公司 基于mvc的数据提取方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150120577A1 (en) * 2013-10-04 2015-04-30 Clique Intelligence Systems and methods for enterprise management using contextual graphs

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232505A (zh) * 2008-01-17 2008-07-30 中山大学 基于mvc架构的ria分层框架的接口模型
CN102591627A (zh) * 2011-01-13 2012-07-18 腾讯科技(深圳)有限公司 一种Flash应用程序开发系统及应用请求处理方法
CN102650952A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 基于mvc框架的建模工具命令调用方法及系统
CN104281441A (zh) * 2013-07-09 2015-01-14 腾讯科技(深圳)有限公司 基于mvc的数据提取方法及装置
CN104267944A (zh) * 2014-09-22 2015-01-07 浪潮软件集团有限公司 一种基于Spring的MVC模式优化系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
An Architecture and Implement Model for Model-View-Presenter Pattern;Yang Zhang etc.;《IEEE International Conference On Computer Science》;20100831(第8期);第532-536页
应用MVP模式改进软件架构;王念桥;《计算机时代》;20120430(第4期);第37-38,40页

Also Published As

Publication number Publication date
CN105975265A (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
KR102085686B1 (ko) 상태 제어 방법 및 장치
US9696972B2 (en) Method and apparatus for updating a web-based user interface
CN106294372B (zh) 应用程序页面快速访问方法及应用其的移动终端
US8930916B1 (en) Generation of API call graphs from static disassembly
JP2017504910A5 (zh)
CN105975265B (zh) 一种基于改进型mvp模式的装置
US8893272B2 (en) Method and device for recombining runtime instruction
CN109302321A (zh) 服务器、业务需求处理系统、方法和监控系统
TW201947395A (zh) 頁面處理方法、裝置及設備
CN105183495A (zh) 跨操作系统域来协调活动视图
US11704139B2 (en) Service processing method and apparatus, electronic device, and storage medium
CN106650430A (zh) 一种基于移动终端的应用程序状态锁定控制方法及系统
Mancini et al. iGateLink: a gateway library for linking IoT, edge, fog, and cloud computing environments
CN107016262A (zh) 应用程序权限管理方法及客户端
CN112214397B (zh) 用户界面测试方法、装置、计算机设备和存储介质
CN112199200A (zh) 资源调度方法、装置、计算机设备和存储介质
KR102103399B1 (ko) 인공지능 기반 사물인식을 활용한 가상 증강정보 제공 시스템 및 그 방법
Kim et al. Design of code template for automatic code generation of heterogeneous smartphone application
CN113126928B (zh) 文件移动方法及装置、电子设备和介质
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN104267954A (zh) 一种用户界面中所包含的部件的生成方法和装置
Cui et al. PRUID: Practical User Interface Distribution for Multi-surface Computing
CN104808985B (zh) 应用程序中对象的管理方法及装置
CN110231934A (zh) 一种基于Windows系统一体机的业务办理通用平台开发方法
CN108415692A (zh) 一键生成前端ui脚本框架插件的方法和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 200063, Shanghai, Putuo District, home on the first floor of the cross road, No. 28

Patentee after: Palmwin Information Technology (Shanghai) Co.,Ltd.

Address before: 200063, Shanghai, Putuo District, 515 home road, room 28

Patentee before: Palmwin Information Technology (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200710

Address after: 603a, block a, Xinghe world, No.1 Yabao Road, Longgang District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Weiwu Technology Co.,Ltd.

Address before: 200063, Shanghai, Putuo District, home on the first floor of the cross road, No. 28

Patentee before: Palmwin Information Technology (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210129

Address after: 518051 2503, building 15, Longhai homeland, 5246 Yihai Avenue, baonanshan District, Shenzhen City, Guangdong Province

Patentee after: Xiao Feng

Address before: 603a, block a, Xinghe world, No.1, Yabao Road, Longgang District, Shenzhen, Guangdong 518035

Patentee before: Shenzhen Weiwu Technology Co.,Ltd.