MVC设计模式深入理解
MVC要實現的目標是將軟件用戶界面和業務邏輯分離以使代碼可擴展性、可復用性、可維護性、靈活性加強。
MVC是三個單詞的縮寫:Model, View, Controller。
View層是界面,Model層是業務邏輯,Controller層用來調度View層和Model層,將用戶界面和業務邏輯合理的組織在一起,起粘合劑的效果。所以Controller中的內容能少則少,這樣才能提供最大的靈活性
其中MVC模式是由組合模式、策咯模式、觀察者模式的組合,MVC在軟件開發中發揮的威力,最終離不開這三個模式的默契配合。
組合模式只在視圖層活動, 視圖層的實現用的就是組合模式,類層次結構是樹狀(如下圖) owvsetuqu.bkt.clouddn.com/image/desig…
組合模式允許你將對象組合成樹形結構來表現”部分-整體“的層次結構,使得客戶以一致的方式處理單個對象以及對象的組合。 組合模式實現的最關鍵的地方是——簡單對象和復合對象必須實現相同的接口。這就是組合模式能夠將組合對象和簡單對象進行一致處理的原因。
組合部件(Component):它是一個抽象角色,為要組合的對象提供統一的接口。 葉子(Leaf):在組合中表示子節點對象,葉子節點不能有子節點。 合成部件(Composite):定義有枝節點的行為,用來存儲部件,實現在Component接口中的有關操作,如增加(Add)和刪除(Remove)。此處簡單介紹了解,因為我們客戶端幾乎有機會使用到。
策略模式是View和Controller之間的關系,Controller是View的一個策略,Controller對于View是可替換的, View和Controller的關系是一對多,在實際的開發場景中,也經常會碰到一個View被多個Controller引用,這即使策咯模式的一種體現
在策略模式(Strategy Pattern)中,一個類的行為或其算法可以在運行時更改。這種類型的設計模式屬于行為型模式。 在策略模式中,我們創建表示各種策略的對象和一個行為隨著策略對象改變而改變的 context 對象。策略對象改變 context 對象的執行算法。
觀察者模式有兩部分組成,被觀察的對象和觀察者,觀察者也被稱為監聽者。對應到MVC中,Model是被觀察的對象,View是觀察者,Model層一旦發生變化,View層即被通知更新。View層和Model層互相之間是持有引用的。 我們在開發iOS MVC程序時,因為視圖層的UI和Model層的業務邏輯之間隔了一個http,所以不能顯示的進行關聯,但是他們觀察者和收聽者的關系卻沒有改變。當View通過http提交數據給服務器,服務器上的Model接受到數據執行某些操作,再通過http響應將結果回送給View,View(UI)接受到數據更新界面,這不正是一個接受到通知并執行更新的行為嗎,是觀察者模式的另一種表現形式。
關于MVC各層之間關系所對應的設計模式
View層,單獨實現了組合模式
Model層和View層,實現了觀察者模式
View層和Controller層,實現了策咯模式
備注: 1:核心思想來自《head first設計模式》 2:博客書寫多有借鑒,各位大佬海涵
總結
以上是生活随笔為你收集整理的MVC设计模式深入理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zookeeper(一):功能和原理
- 下一篇: 遇见C++ AMP:在GPU上做并行计算