MVC是一种用于表示层设计的复合设计模式
生活随笔
收集整理的這篇文章主要介紹了
MVC是一种用于表示层设计的复合设计模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
?
它們之間的交互有以下幾種: ??????1.當用戶在視圖上做任何需要調(diào)用模型的操作時,它的請求將被控制器截獲。 ??????2.控制器按照自身指定的策略,將用戶行為翻譯成模型操作,調(diào)用模型相應邏輯實現(xiàn)。 ??????3.控制器可能會在接到視圖操作時,指定視圖做某些改變。 ??????4.當模型的狀態(tài)發(fā)生改變時,將通過某種方式通知視圖。 ??????5.視圖可以從模型獲取狀態(tài),從而改變自己的顯示。 我要引入一個設(shè)計模式,叫觀察著(Observer)模式。?
在MVC中,視圖是觀察者,模型是被觀察者,當模型狀態(tài)改變時,調(diào)用所有觀察者的Update方法,通知視圖模型有變,視圖在Update方法里寫下響應代碼,完成操作。通過這個方法,視圖和模型就可以在僅依賴接口的情形下進行交互,而不必強耦合,而且在模型不變的情況下,視圖可以隨意替換。(只要實現(xiàn)了IObserver)
?
2. 在MVC中另一個使用接口的地方就是控制器,這里我要首先引入一個設(shè)計模式:策略模式(Strategy)。在MVC中,控制器就使用了這個模式。 剛才我說過,視圖負責與用戶交互,但是,它只負責界面顯示部分,至于當用戶做了某個操作(如單擊某個按鈕)后系統(tǒng)應該怎么反應,視圖并不負責,它只是將這個動作交給控制器,控制器根據(jù)內(nèi)置的策略,將用戶操作翻譯成模型的邏輯。這就是說,同一個視圖、同一種操作,模型可以做出不同的反應,這取決與控制器的內(nèi)置策略。所以,我們的系統(tǒng)中可以有很多控制器,它們有不同的策略,當視圖希望改變策略時,它可以更換控制器。怎么實現(xiàn)呢?這就需要視圖不能和具體控制器耦合,而是要僅依賴一個控制器接口(如IController),并聚合一個IController的實例。當希望更改策略時,可以在系統(tǒng)運行時動態(tài)更換Controller,這就是策略模式的實現(xiàn)。?
?
轉(zhuǎn)載于:https://www.cnblogs.com/james1207/p/3297167.html
總結(jié)
以上是生活随笔為你收集整理的MVC是一种用于表示层设计的复合设计模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 来分期上征信吗?逾期会怎么样?
- 下一篇: springmvc框架下Filter过滤