2012-04-04 53 views
2

據理論,似乎Asp.net MVC框架可以更好地描述爲軟件模式MVP ...爲什麼不呢?爲什麼Asp.net MVC而不是Asp.net MVP

因爲就我看來,我將Asp.net MVC看作一個具有調用控制器操作的功能視圖(腳本運行)的框架。所以看起來好像是主人。

+0

我認爲你是絕對正確的。 – 2012-04-04 07:16:38

+0

@SimonLinder:FYI。我發現一些更多的信息告訴**主要區別** ...在MVP中,視圖是*經理*然後與主持人交談,但在MVC中,控制器是*經理*,而視圖僅僅是*農民*由他們的經理實例化。所以主要的區別是視圖的作用。 – 2012-04-04 12:37:37

回答

2

有兩個明顯的差異(從源獲得):

被動視圖

觀儘可能啞和包含幾乎爲零的邏輯。 Presenter是一個與視圖和模型交談的中間人。視圖和模型完全相互隔離。模型可能引發事件,但Presenter訂閱它們以更新視圖。在Passive View中,沒有直接的數據綁定,而是View暴露了Presenter用來設置數據的setter屬性。所有狀態都由演示者管理,而不是視圖。

Pro:最大可測性曲面;清晰地分離視圖和模型

Con:更多的工作(例如所有setter屬性),因爲您正在自己完成所有數據綁定。

監督控制器

演示者處理用戶的手勢。視圖通過數據綁定直接綁定到模型。在這種情況下,演示者的工作是將模型傳遞給視圖,以便它可以綁定到視圖。 Presenter還將包含用於像按下按鈕,導航等手勢的邏輯。

Pro:通過利用數據綁定來減少代碼量。

Con:由於數據綁定,可測試表面較少,View中的封裝較少,因爲它直接與Model對話。

看到這個問題:What are MVP and MVC and what is the difference?

相關問題