MVP模式

最近在公司开发时用到了一种挺特别的设计模式,这种模式很好的把UI分离出来,它把UI抽象出一个View,然后独立出一个Presentation来对View进行控制,把BLL很好的与UI接起来,这上面所提到的就是我们接下来要了解的MVP模式。

好,下面让我们先看看一个应用程序的体系结构:

上图是从微软的msdn上拿下来的,很清晰可以看到,我们会把系统分为了好几块,分了这几块后本人感觉到的好处有两个:

一是把系统很好的分层了,以后维护起来也是挺方便的,特别是在Presentation与UI这两层。

二是把整个系统的开发,很好的分工了,它能清楚的告诉团队的每一个人自己写出来的服务或是组件给的用户是谁。

说起来很抽象,还是写个例子吧。

Default Page Code

 1public partial class _Default : System.Web.UI.Page, IDefaultPageView
 2{
 3    protected void Page_Load(object sender, EventArgs e)
 4    {
 5        DefaultPagePresentation presentation = new DefaultPagePresentation(this);
 6        if (ButtonOnClick != null)
 7        {
 8            ButtonOnClick(sender, e);
 9        }
10    }
11
12    IDefaultPageView 成员#region IDefaultPageView 成员
13
14    public event EventHandler ButtonOnClick;
15
16    public void ShowMessage(string pStr)
17    {
18        Response.Write(pStr);
19    }
20
21    #endregion
22}
23
24/**//// <summary>
25/// Default页面抽象视图
26/// </summary>
27public interface IDefaultPageView
28{
29    void ShowMessage(string pStr);
30    event EventHandler ButtonOnClick;
31}
32
33/**//// <summary>
34/// 控制类
35/// </summary>
36public class DefaultPagePresentation
37{
38    private IDefaultPageView _view;
39
40    public DefaultPagePresentation(IDefaultPageView pView)
41    {
42        _view = pView;
43        _view.ButtonOnClick += new EventHandler(_view_ButtonOnClick);
44    }
45
46    void _view_ButtonOnClick(object sender, EventArgs e)
47    {
48        _view.ShowMessage("Hello world!");
49    }
50}
51

从上面的例子的效果是一运行就会输出 "Hello world!" 。不用多解释了,说多了也没用,大家还是看代码吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索抽象
, public
, 模式
, default
eventhandler
android mvp模式、mvp开发模式、mvp、mvc模式、mvp设计模式,以便于您获取更多的相关知识。

时间: 2024-08-04 00:09:25

MVP模式的相关文章

超越MVP:为企业级应用程序UI体系结构扩展MVP模式

Model-View-Presenter (MVP) 展现了一种关于 UI 模式的突破性思维方式,并明确了 UI 设计人员应 该在应用程序中保持独立. 但是,对 MVP 模式有许多种不同的解释.例如,有些人想当然地认为 MVP 模式明确表示 UI 体系结 构模式.这对于企业级应用程序来说,并不完全正确.与其他类型的 UI 应用程序相比,企业级应用程序 需要满足许多不同的需求,涉及更多相关方,更加复杂,而且更多地交叉依赖于其他系统(例如服务.其 他应用程序等).这些独有的特征要求企业级应用程序的

ASP.NET MVC Framework与WCSF中MVP模式的比较

概述 MVC模式已经出现了几十年了,在GUI领域已经得到了广泛的应用,由于微软ASP.NET MVC Framework的出现,致使MVC一度成为.NET 社区的热名话题.作为MVC的变种MVP模式,也已经出现好几年了,在微软模式与实践小组提供的Web Client Software Factory中,给出了实现 MVP模式的应用程序最佳实践,本文将试着对这两种实现比较一二. MVC(Model-View-Controller,模型-视图-控制器)模式是80年代 Smalltalk-80出现的一

MVP模式在Android项目中的使用

  以前在写项目的时候,没有过多考虑架构模式的问题,因为之前一直做J2EE开发,而J2EE都是采用MVC模式进行开发的,所以在搭建公司项目的时候,也 是使用类似MVC的架构(严格来讲,之前的项目还算不上MVC模式,只是简单将网络请求与界面分离,然后通过Handle通知更新界面).这种写法,在后 面随着项目越来越大,Activty或者Fragment中代码也会越来越多,导致项目的维护变的越来越复杂.所以需要另外一种架构模式来解决这个问题, 在网上浏览了一圈,发现适合Android开发的架构模式非M

按钮-MVP模式中 VIEW与VIEW能直接通行吗

问题描述 MVP模式中 VIEW与VIEW能直接通行吗 我想在项目中 在一个窗口中点击一个按钮另一个窗口需要做一些按钮禁用,我采用的是MVP模式,每一个窗口对应一个PRESENTER,我想知道窗口间的通信时VIEW与VIEW直接通信,还是通过对应的PRESENTER去通信? PRESENTER和PRESENTER之间又是如何通信的. 解决方案 View与View间可以直接通信,Presenter对于View而言最终只是获取加工数据的一个接口.关于MVP请参看http://blog.csdn.ne

说说Android的MVP模式

安卓应用开发是一个看似容易,实则很难的一门苦活儿.上手容易,看几天Java,看看四大组件咋用,就能整出个不太难看的页面来.但是想要做好,却是很难.系统框架和系统组件封装了很多东西,开发者弄几个Activity,用LinearLayout把布局组合在一起,添加点事件监听,一个应用就成型了.红海竞争,不管多么复杂的UX和业务逻辑都是一个月快速上线,二周一个迭代,领导和产品早上改需求,晚上改设计,再加上产品经理和设计师都按照iOS来设计,这一系列原因导致很多安卓应用不但体验差,不稳定,性能低,而且内部

MVP模式在携程酒店的应用和扩展

前言 酒店业务部门是携程旅行的几大业务之一,其业务逻辑复杂,业务需求变动快,经过多年的研发,已经是一个代码规模庞大的工程,如何规范代码,将代码按照其功能进行分类,将代码写到合适的地方对项目的迭代起着重要的作用. MVP模式是目前客户端比较流行的框架模式,携程在很早之前就开始探索使用该模式进行相关的业务功能开发,以提升代码的规范性和可维护性,积累了一定的经验.本文将探讨一下该模式在实际工程中的优点和缺陷,并介绍携程面对这些问题时的思考,解决方案以及在实践经验基础上对该模式的扩展模式MVCPI. 一

界面-winform中使用mvp模式

问题描述 winform中使用mvp模式 如题,现在在网络上找到的文章99%都是差不多的,有原创的但都解决不了我的问题. 在一个界面中除了textbox的text之外,如果还要对这个textbox的大小和位置做修改 的话是不是又要再在接口里面写一个位置和大小的get,set,在界面中再实现一次,如果除了大小,位置之外,以后还有各种属性的设置,这样不就很麻烦,还有如果一个界面有10个textbox,都需要做这样的设置(值不一样),那么不就很长繁琐.跪求大神解答小弟这小小的问题. 解决方案 你可以在

浅析MVP模式中V-P交互问题及案例分享_实用技巧

在差不多两年的时间内,我们项目组几十来号人都扑在一个项目上面.这是一个基于微软SCSF(Smart Client Software Factory)的项目,客户端是墨尔本一家事业单位.前两周,我奉命负责对某个模块进行Code Review工作,在此期间,发现了一些问题,也有了一些想法.不过,有些想法可能还不是很成熟,不能完全保证其正确性,有机会写出来讨论一下.今天来说说关于MVP的一些想法. 一.简单讲讲MVP是什么玩意儿如果从层次关系来讲,MVP属于Presentation层的设计模式.对于一

详解MVP模式在Android开发中的应用_Android

一.MVP介绍  随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Model只关系数据的处理,基于MVC概念的MVP(Model-View-Presenter)模式应运而生. 在MVP模式里通常包含4个要素:  (1)View:负责绘制UI元素.与用户进行交互(在Android中体现为Activity); (2)View interface:需要View实现的接口,Vi