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

2021-07-25 22:20:22 字數 1342 閱讀 8999

參考文章:

mvc是什麼?

mvc全名是model view controller,是模型(model)-檢視(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、資料、介面顯示分離的方法組織**,將業務邏輯聚集到乙個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。mvc被獨特的發展起來用於對映傳統的輸入、處理和輸出功能在乙個邏輯的圖形化使用者介面的結構中。

有很多程式設計師往往把框架模式和設計模式混淆,認為mvc是一種設計模式。實際上它們完全是不同的概念。框架、設計模式這兩個概念總容易被混淆,其實它們之間還是有區別的。框架通常是**重用,而設計模式是設計重用,架構則介於兩者之間,部分**重用,部分設計重用,有時分析也可重用。在軟體生產中有三種級別的重用:內部重用,即在同一應用中能公共使用的抽象塊;**重用,即將通用模組組合成庫或工具集,以便在多個應用和領域都能使用;應用框架的重用,即為專用領域提供通用的或現成的基礎結構,以獲得最高端別的重用性。框架與設計模式雖然相似,但卻有著根本的不同。設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用**表示,也能直接執行或復用,而對模式而言只有例項才能用**表示;設計模式是比框架更小的元素,乙個框架中往往含有乙個或多個設計模式,框架總是針對某一特定應用領域,但同一模式卻可適用於各種應用。可以說,框架是軟體,而設計模式是軟體的知識。

引用一段話

mvc提及為一種設計模式,而是把它當做「一組用於構建使用者介面的類集合」。在他們看來,它其實是其它三個經典的設計模式的演變:觀察者模式(observer)(pub/sub), 策略模式(strategy)和組合模式(composite)。根據mvc在核心通訊上基於推送/訂閱模型(驚訝的是 在很多關於mvc的文章中並沒有提及到)。當乙個model變化時它對應用其它模組發出更新通(「publishes」),訂閱者 (subscriber)——通常是乙個controller,然後更新對應的view。觀察者——這種自然的觀察關係促進了多個view關聯到同乙個 model。對於感興趣的開發人員想更多的了解解耦性的mvc(根據不同的實現),這種模式的目標之一就是在乙個主題和它的觀察者之間建立一對多的關係。當這個 主題改變的時候,它的觀察者也會得到更新。viewscontrollers的關係稍微有點不同。controllers幫助views對不同使用者的輸 入做不同的響應,是乙個非常好的策略模式列子。

介紹一篇好文章:

為什麼23種設計模式中沒有MVC

正如我們所討論的,models表示應用的資料,而views處理螢幕上展現給使用者的內容。為此,mvc在核心通訊上基於推送 訂閱模型 驚訝的是 在很多關於mvc的文章中並沒有提及到 當乙個model變化時它對應用其它模組發出更新通知 publishes 訂閱者 subscriber 通常是乙個cont...

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

它們之間的互動有以下幾種 1.當使用者在檢視上做任何需要呼叫模型的操作時,它的請求將被控制器截獲。2.控制器按照自身指定的策略,將使用者行為翻譯成模型操作,呼叫模型相應邏輯實現。3.控制器可能會在接到檢視操作時,指定檢視做某些改變。4.當模型的狀態發生改變時,將通過某種方式通知檢視。5.檢視可以從模...

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

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