/* syntax highlight */ /* end of syntax highlight */

2010年11月25日 星期四

iphone app 開發 (十一) – 程式 MVC 架構說明

Bookmark and Share

image

image

iPhone 程式設計的架構也是 based on MVC 架構

至於何謂 MVC 架構請看 Wiki 的解釋

大致就是說用模型的方式把任務分隔

 

View 是負責畫面的呈現

Controller 負責流程的控管

Model 負責處理的資料

 

在這邊要提四個重要的名詞

Application Controller: 負責起動程式並初始化物件,並執行視窗管理功能,也就是管理View 控制器

View Controller: 由 UIVController 類別,負責管理顯示的View

Data Source: 資料提供者,在引用資料時直接連結 Data Source 即可

Delegate: 負責在 App 執行的過程中判斷事件,並指定對應的物件來做處理

 

 

另外,我有在網站上找到對岸翻譯的 Standford 課程,希望對讀者有幫助 (講超好的)

或按圖連結影片

image 

 

 

以下針對上面的影片做一些筆記

(1) 前半部是跟我們之前上課一樣的課程說明 (好懷念 XD)

(2) 23 分鐘開始才是 MVC 的介紹

(3) Model 很像是以前的 MUD (文字畫面的線上 RPG) ,沒有畫面,只有數字的變化,像是,主角現在擁有多少 HP , MP ,這些數字,這些特性

(4) Controller 則是讓描述 model 用的,類似 Attribute,像是可能主角站在畫面上哪個位置等等

(5) View 則是畫面的呈現,即主角的長像等等

(6) Model 與 View 是完全不互通的

 

根據我以前做專案的經驗

介面設計師可以專用的去設計 View 裡面的物件長像

程式設計師去寫這些 model

而兩方一起溝同怎樣去建這些 Controller

 

 

outlet 的觀念

image

影片後面有上面這張圖,這是 outlet 的觀念 ( 綠色的箭頭 ),指 Controller 可以透過 Outlet send 訊息給 View,意思是指像是「請將主角的位子告訴 view 該呈現在哪裡」m

 

 

Target & Action 的觀念

image

事實上 View 也常常需要回傳訊息給 Controller,舉例來說,當使用者滑動滾輪,在 Controller 那裡可能會有一些參數需要改變,這時候我們可以幫 Controller 開一些缺口,等待 View 的 Action 傳訊息過來,讀者之後在使用 Xcode 時就會看到這些符號。

 

Delegate & Data Source

image

Delegate 是委託的意思,一個 View 只能委託一個 Controller,你可以看到圖片裡有 Will, Should, did 三個單字,指的是 View 可能會有要傳送裡面的物件「將要做什麼、應該做什麼、做了什麼」等資訊讓 Controller 知道,

但是 Controller 也可能會想要知道像是「使用者捲軸滑動了多少」這樣的訊息,是一個數字,所以 View 就必須靠 Data Souce 這個協定來將這些數字傳送給 Controller ,這就是他的功用。

 

Notification & KVO

image

至於 Model 則是靠著 notification 將他將要傳送的訊息「廣播」出去,而 Controller 則會監聽這些訊號,當監聽到的時候,就能夠知道 Model 該端所想要傳誦的訊息。

 

 

Conclusion

image

最後是結論的部份,結論就是如果 MVC 結構用的正確的話,程式碼可以達成 Reuse (重覆使用)、efficient (效率)、 management (好管理) 等等好處。

這部影片真的很好看,希望大家都能去看看。

0 意見:

張貼留言

Related Posts Plugin for WordPress, Blogger...