久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

MVP——Model-Viewer-Presenter

 強子 2008-01-28

Introduction

這里的MVP不是微軟的那個MVP,,而是一個設計模式Model-Viewer-Presenter。最早(2000年)由IBM開發(fā)出來的一個針對C++Java的編程模型,,它是MVC模式的變種,。其目的就在于提供a cleaner implementation of the Observer connection between Application Model and view

MVP

在企業(yè)應用中,,對用戶有用的是各種數(shù)據(jù),,他們通過UI以各種不同的方式管理這些數(shù)據(jù)。對于開發(fā)者而言,,需要給用戶提供各種UI,,通過響應用戶操作UI時觸發(fā)的各種Event來執(zhí)行一定的業(yè)務邏輯,從而操控數(shù)據(jù),,數(shù)據(jù)變化后還需要更新顯示,,給用戶予以提示。UI是容易變化的,,且是多樣的,,一樣的數(shù)據(jù)會有N種顯示方式;業(yè)務邏輯也是比較容易變化的,。為了使得Application具有較大的彈性,,我們期望將UI、邏輯(UI的邏輯和業(yè)務邏輯)和數(shù)據(jù)隔離開來,,而MVP是一個很好的選擇,。

Model

MVC中的Model是一樣的含義——The Domain Data,包括SelectionCommand,。

圖:


Viewer

呈現(xiàn)Model,,且處理UI的事件(Handle UI Event),。

Presenter

代替了Controller,它比Controller擔當更多的任務,,也更加復雜,。Presenter處理事件,執(zhí)行相應的邏輯,,這些邏輯映射到ModelCommand以操作Model,。那些處理UI如何工作的代碼基本上都位于PresenterPresenter如同一個樂隊的指揮家,,表現(xiàn)和協(xié)調(diào)整個Application,,它負責創(chuàng)建和協(xié)調(diào)其它對象。

 

ModelView使用Observer模式進行溝通,;而PresenterView則使用Mediator模式進行通信,;Presenter操作Model則使用Command模式來進行。從上面我給的鏈接MVP中可以找到講解MVPPDF文件,,該文檔中詳細說明了MVP的設計思想,。

如果想知道MVCMVP有什么不同,那可以看這里,。

Example

光看理論還不能掌握一個架構(gòu)模式,,得看看實際的例子才行,我在codeproject上發(fā)現(xiàn)一篇不錯的文章《Model View Presenter with ASP.NET》,,作者指出了ASP.NETcode-behind編程模型的各種缺點,,然后講解了如何將MVP應用到ASP.NET Application中,而無須使用復雜的Framework,。

更多的例子:

http://www./2005/01/000589.html

http:///blogs/jeremy.miller/articles/129546.aspx

http://weblogs./pgreborio/archive/2005/01/07/348021.aspx

http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/default.aspx

如果不介意看smalltalk的話(其實關鍵是思想):

http://www./docs/index.html?modelviewpresenter.htm

http://www./~sl/teaching/00_01/Delfin_EC/Overviews/ModelViewPresenter.htm

另外還有一個Jean-Paul TV,。
http://weblogs./bsimser/archive/2006/07/18/Model_2D00_View_2D00_Presenter-Pattern-with-SharePoint-Web-Parts.aspx

Postscript

MVC模式幾乎是人人都知道的,但MVP似乎知名度小得多,,很少有人提及,。其實Martin Fowler講解過該模式。雖然它創(chuàng)建之初是為了針對C++Java的,,但在象C#這樣的語言中也一樣可以應用它,。使用MVP后,我們可以提高對ModelPresenter的復用,,比如可以對ModelPresenter不做修改,,而能提供ASP.NET Web Form Windows Form??傊?,MVP是一個值得去研究的架構(gòu)模式。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多