希望能將複雜的東西簡單化
如果給我一句話我會說下面這句
Model、View、Controller 的區分,是希望能把應用程式的內部運作歸納成不同的部門,是一種物件導向的應用
那麼再來詳細說明其中Model、View、Controller之間的關係
Model 負責和資料庫溝通,要和資料作出CRUD的話,需要先將資料從資料庫存取到應用程式的某程式物件中
註:CRUD是指(Create Read Update Delete)
主要負責商業邏輯
View 負責管理畫面的呈現
Controller 負責掌控互動邏輯,由Controller負責通知其他層,類似MVC架構的傳信人
像是負責帶著Data在view跟model之間
這張圖取自Apple的官方文件,揭示一些這些分工之間是如何彼此溝通
從工作最多的Controller開始說起(Model跟View應該算是易懂)
剛剛說了Controller是個傳信人
上面我們完成了這四條線的彼此交織
下面分享一張Chiwen Lai大神的MVC圖(網址會附在最下面)
這張圖很清楚地把會在Swift開發上會用到的幾個通知方式都列了出來
在官方文檔下寫著
ViewController主要的職責有
好處:
方便使用重複已經完成的程式碼
方便維護各自架構下的程式碼
方便多人分工
缺點:
需要進行多一點事前規劃
需要維護的檔案也較多
結語:
因為iOS開發是透過MVC架構,故了解MVC架構下能夠更能了解為何要用ViewController、View 等
參考鏈結