博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVP模式
阅读量:6308 次
发布时间:2019-06-22

本文共 2285 字,大约阅读时间需要 7 分钟。

MVP不仅避免了View和Model之前的耦合,更进一步地隆低了Presenter对View的依赖。View实现了接口IView。此处以一个微小的实例展示,废话不多说,直接上代码。

IView:

public interface IDisplayView    {        void DisplayInfo(IList
blogs); event EventHandler
Commit; }

Model:此处以BlogRepostory作为Model提供数据

public class BlogsRepostory    {        public static IList
blogs = new List
(); public BlogsRepostory() { } }

Presenter:处理用户请求

public class BlogPresenter    {        public IDisplayView View { get; private set; }        public BlogPresenter(IDisplayView view)        {            this.View = view;            this.View.Commit += new EventHandler
(Commit); } public void Initalize() { } protected void Commit(object sender,CommitEventArgs e) { BlogsRepostory.blogs.Add(e.blog); this.View.DisplayInfo(BlogsRepostory.blogs); } }

在UI中实现了IView:

public partial class WebForm1 : System.Web.UI.Page, IDisplayView    {        public event EventHandler
Commit; public BlogPresenter Presenter { get; private set; } public WebForm1() { this.Presenter = new BlogPresenter(this); } protected void Page_Load(object sender, EventArgs e) { } public void DisplayInfo(IList
blogs) { if (blogs != null && blogs.Count > 0) { var sb = new StringBuilder("
"); foreach (var blog in blogs) { sb.AppendFormat("
", blog.Title, blog.Content); } sb.Append("
{0} {1}
"); this.Lb_Info.Text = sb.ToString(); } } protected void Btn_Commit_Click(object sender, EventArgs e) { if (Commit != null) { Commit(this, new CommitEventArgs(new BlogInfo { Title = TB_Title.Text, Content = TB_Content.Text })); } } }

功能看上去很简单,提交数据然后再显示出来。无非是把最肤浅的东西拿出来说一说,此模式的精妙之处还不甚了解,望各位高人指点一二,不胜感激......

 

 

转载于:https://www.cnblogs.com/luojianguang/archive/2013/03/06/2947063.html

你可能感兴趣的文章
Echart:前端很好的数据图表展现工具+demo
查看>>
CATransform3D iOS动画特效详解
查看>>
Linux VNC黑屏(转)
查看>>
Java反射简介
查看>>
react脚手架应用以及iview安装
查看>>
shell学习之用户管理和文件属性
查看>>
day8--socket网络编程进阶
查看>>
node mysql模块写入中文字符时的乱码问题
查看>>
仍需"敬请期待"的微信沃卡
查看>>
分析Ajax爬取今日头条街拍美图
查看>>
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>