MVC是一種用於表示層設計的復合設計模式

2021-09-07 22:05:20 字數 932 閱讀 6764

它們之間的互動有以下幾種:

1.當使用者在檢視上做任何需要呼叫模型的操作時,它的請求將被控制器截獲。

2.控制器按照自身指定的策略,將使用者行為翻譯成模型操作,呼叫模型相應邏輯實現。

3.控制器可能會在接到檢視操作時,指定檢視做某些改變。

4.當模型的狀態發生改變時,將通過某種方式通知檢視。

5.檢視可以從模型獲取狀態,從而改變自己的顯示。

我要引入乙個設計模式,叫觀察著(observer)模式。

在mvc中,檢視是觀察者,模型是被觀察者,當模型狀態改變時,呼叫所有觀察者的update方法,通知檢視模型有變,檢視在update方法裡寫下響應**,完成操作。通過這個方法,檢視和模型就可以在僅依賴介面的情形下進行互動,而不必強耦合,而且在模型不變的情況下,檢視可以隨意替換。(只要實現了iobserver)

2. 在mvc中另乙個使用介面的地方就是控制器,這裡我要首先引入乙個設計模式:策略模式(strategy)。在mvc中,控制器就使用了這個模式。

剛才我說過,檢視負責與使用者互動,但是,它只負責介面顯示部分,至於當使用者做了某個操作(如單擊某個按鈕)後系統應該怎麼反應,檢視並不負責,它只是將這個動作交給控制器,控制器根據內建的策略,將使用者操作翻譯成模型的邏輯。這就是說,同乙個檢視、同一種操作,模型可以做出不同的反應,這取決與控制器的內建策略。所以,我們的系統中可以有很多控制器,它們有不同的策略,當檢視希望改變策略時,它可以更換控制器。怎麼實現呢?這就需要檢視不能和具體控制器耦合,而是要僅依賴乙個控制器介面(如icontroller),並聚合乙個icontroller的例項。當希望更改策略時,可以在系統執行時動態更換controller,這就是策略模式的實現。

MVC是一種用於表示層設計的復合設計模式

mvc是一種用於表示層設計的復合設計模式。m v c分別表示模型 model view 檢視 controller 控制器 它們的職責如下 在mvc中,檢視是觀察者,模型是被觀察者,當模型狀態改變時,呼叫所有觀察者的update方法,通知檢視模型有變,檢視在update方法裡寫下響應 完成操作。通過...

設計,是一種態度

我 們每個人在高考填報志願的那一刻,就被打上了不同的標籤,注定我們要走上不同的職業生涯,而我的標籤是一名設計師。在進入大學的一千多個日日夜夜中,我無 時無刻不在思考這個問題,突然,我驚奇的發現 我們每個人都是設計師,完成乙個機構,製作一塊電路板,編寫一段程式 這一切都是設計,在我看來,將自己 的思想...

為什麼MVC不是一種設計模式

參考文章 mvc是什麼?mvc全名是model view controller,是模型 model 檢視 view 控制器 controller 的縮寫,一種軟體設計典範,用一種業務邏輯 資料 介面顯示分離的方法組織 將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新...