黑馬程序員-3.MVC框架

        今天發現了斯坦福的一套視頻感覺很首啓發,那套視頻裏講了iOS7開發的一些思想,MVC從開始到最後,感覺MVC就是爲iOS開發而生(好像html也有,沒做過不知道),感覺MVC還是很重要的。


1.何爲MVC

        MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。

視圖(View)=在屏幕上你所看到的(由Controller調用)

    MVC好處是它能爲應用程序處理很多不同的視圖。在視圖中其實沒有真正的處理髮生,不管這些數據是聯機存儲的還是一個僱員列表,作爲視圖來講,它只是作爲一種輸出數據並允許用戶操縱的方式。

模型(Model)=你的程序是什麼(而不是你的程序是如何顯示的)

    模型表示企業數據和業務規則。在MVC的三個部件中,模型擁有最多的處理任務。例如它可能用像EJBs和ColdFusion Components這樣的構件對象來處理數據庫,被模型返回的數據是中立的,就是說模型與數據格式無關,這樣一個模型能爲多個視圖提供數據,由於應用於模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重複性。

控制器(Controller)如何使你的模型呈現給用戶(程序邏輯)

    控制器接受用戶的輸入並調用模型和視圖去完成用戶的需求,所以當單擊Web頁面中的超鏈接和發送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求並決定調用哪個模型構件去處理請求,然後再確定用哪個視圖來顯示返回的數據。 

借來斯坦福的ppt講解MVC的實現

DB98A8D101A92066FBD6D264B7486D90_B500_90

首先Controller和Model,Controller和View之間進行通信,Model與View之間不能通信


Controller和View之間會出現兩種通信方式:數據源方法以及代理方法,代理方法在下一個blog中會寫。按鈕等繼承了UIControl的那些類則通過action或者outlet(輸出口)進行通信。

  1. 數據源方法(data source)

    V不管保存數據,但是數據更新需要C進行顯示。

  2. 代理方法(delegate)


  3. action或者outlet

    按鈕等繼承了UIControl的那些類則通過action或者outlet(輸出口)進行通信


Controller和Model之間通過Notification(通知)or KVO進行數據的更新



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章