iOS MVC架構介紹

weixin_34148340發表於2017-03-22

iOS MVC架構介紹

MVC全名是Model View Controller,是模型(model)-檢視(view)-控制器(controller)的縮寫。
MVC是一個框架模式,它強制性的使應用程式的輸入、處理和輸出分開。

基本概念:

  • 檢視(View):構建UI的類;例如:按鈕,標籤,進度條等。
  • 模型(Model):檢視類所需要的資料;例如:表格需要顯示的文字。
  • 控制器(Controller):連線檢視類和模型類,任務是使資料顯示在螢幕上。

通訊方式

  • 控制器可以直接訪問模型:將模型直接作為控制器的屬性。
  • 控制器可以直接訪問檢視:將檢視直接作為控制器的屬性。
  • 模型與檢視無法直接訪問對方:二者完全解耦,不能引用對方,把對方設定為屬性。
  • 檢視到控制器的通訊:
    • 目標動作機制(target - action):使用者與檢視互動觸發控制器的方法。例如:點選按鈕後實現視介面跳轉,網路請求,重新整理UI等。
    • 委託機制(delegate):檢視向控制器詢問某些自己無法決定的事情,或是讓控制器幫助自己做一些自己獨立無法完成的事情。 因為控制器才是掌握全域性的角色,很多時候檢視是無法自己做決定的。例如:表格問控制器:我可以滾動麼?然後控制器給予回答告知是否可以繼續滾動。 如果表格的高度很小,那麼就可以不讓它滾動。但是如果表格的高度已經超過了螢幕的高度,這時候如果讓它自作主張無法滾動久不好了。
    • 資料來源機制(dataSource):檢視讓控制器給它將要顯示的資料。例如:音樂的資料存在於模型裡,控制器訪問模型,從模型裡拿到資料後告訴檢視如何顯示出歌曲。
  • 模型到控制器的通訊
    • 廣播機制(Notification):控制器註冊監聽某模型資料變化的廣播頻道,當此模型資料變化後向該控制器傳送廣播,告知模型變化情況。
    • KVO機制(Key-Value Observing):模型作為控制器的屬性,當模型屬性被修改後,持有此模型屬性的控制器就會收到通知。
859001-492c53ebbb43ad76.png
iOS MVC架構

借鑑 上天眷顧我 原文地址

相關文章