第一篇:Asp.net MVP模式介紹

發表於3年前(2011-08-21 15:00)   閱讀(457) | 評論(1 4人收藏此文章, 我要收藏html

0web

Asp.net Mvp模式數據庫


做者:BirchLee 2011年8月20日 22時10分【學而不思則罔,思而不學則殆】mvc

本文內容:asp.net

1.什麼是MVP模式測試

2.Asp.net MVP模式簡單示例ui

1.什麼是MVP模式this

任何事物的出現,必有原由。spa

先看起源:軟件工程中一個基本的方法是分層結構。.net

1.智能用戶界面模式(Smart UI Pattern),這種模式下最爲經典當屬 Winform,用戶經過操做界面操做數據庫。

2.理解領域模型(Domain Model)也叫業務對象模型。

領域(Domain)分爲兩種:領域對象(Domain Object)和領域服務(Domain Service)。Domain Object承載了業務數據,包含須要持久化的屬性以及相關的業務邏輯。Domain Service包括了流程邏輯(Business Process)和控制邏輯(Business Rule).

3.二層結構模式(View-Model)模式

4.三層結構模式(View-Model-Data Access)

   

5.MVC模式(View-Model-Controller)

6.MVP模式(View-Model-Presenter)

上面介紹了Mvp模式的進化歷程,每種模式都是爲了解決上一種模式的不足而提出來的。Mvp要解決的問題是 Smart UI模式下,用戶界面和業務邏輯的分離,目的是爲了讓程序便於維護和測試。

2.Asp.net Mvp模式簡單示例

設置示例場景(Set the Sence):用戶輸入姓名後,顯示你好某某某。

具體實現:

//IView做用是數據對象的載體

public interface IView

{

//用於返回Hello 某某某

public Lable{get; set;}

//接收輸入的姓名

public Text{get;set;}

}

//進行業務處理,跟Controller相似,返回IView

public class Presenter

{

IView pview;

public Presenter(IView view)

{

pview=view;

}

//業務處理,返回處理結果

public buildText()

{

pview.Lable=string.Concat("您好:"+pview.Text);

}

}

//Default頁面代碼

<div>

<asp:Label ID="lbl" runat="server"></asp:Label>

<asp:TextBox ID="txt" runat="server"></asp:TextBox>

<asp:Button ID="bt" runat="server" Text="Enter" OnClick="btn_Click" />

</div>

//Default.cs代碼

public partial class Default: System.Web.UI.Page, IView

{

//實現接口

public string Text

{

get { return txt.Text; }

set { txt.Text = value; }

}

public string Lable

{

get { return lbl.Text; }

set { lbl.Text = value; }

}

//pageLoad事件

protected void Page_Load(object sender, EventArgs e)

{}

//按鈕點擊事件

protected void btn_Click(object sender, EventArgs e)

{

Presenter presenter = new Presenter(this);

presenter.buildtext();

}

}

以上就是Mvp的一個簡單示例,數據經過IView接口的實例進行傳遞,Presenter進行業務的處理,保留了Asp.net事件機制的優勢。

如下是參考文獻:

Model-View-Presenter官方資料

http://wiki.asp.net/page.aspx/340/mvp-pattern/

Domain Model介紹文章

<A style="PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; COLOR: rgb(255,131,115); FONT-SIZE: 12px; PADDING-TOP: 0px" title=http://www.cnblogs.com/yimlin/archive/2006/06/15/426929.html href="http://www.cnblogs.com/yimlin/archive/2006/06/15/426929.html">http://www.cnblogs.com/yimlin/archive/2006/06/15/426929.html

MVC# .Net平臺下的MVP模式

<A style="PADDING-BOTTOM: 0px; MARGIN: 0px; OUTLINE-STYLE: none; OUTLINE-COLOR: invert; PADDING-LEFT: 0px; OUTLINE-WIDTH: 0px; PADDING-RIGHT: 0px; COLOR: rgb(255,131,115); FONT-SIZE: 12px; PADDING-TOP: 0px" title=http://www.mvcsharp.org/Default.aspx href="http://www.mvcsharp.org/Default.aspx">http://www.mvcsharp.org/Default.aspx

Pro Asp.net MVC 3 FrameWork 一書

相關文章
相關標籤/搜索