[Jollen's AFC] 1.1 切割 View & Control

jollen 發表於 April 3, 2012 1:23 PM

將View與Control切割是軟體設計的根本。這個觀念非常的好懂,也是學習軟體設計的基本功。View被解釋成UI等可見物,Control則是控制功能,例如:關機。一般來說,控制功能由控制者提供,所以經常被稱為View/Controller模式。

這個觀念真的簡單不過,把畫面與控制功能分開。這個觀念的發展始於 1980 年代,當時為了開發圖形介面的電腦,電腦科學家於是想到「 Separated Presentation」,也就是從事視覺(Presenetation)的程式碼就只做視覺(例如:Drawing),把其餘的切割(separated)出來。後來形成今天家喻戶曉的軟體設計模式 - MVC(Model-View-Controller)。

把View與Controller切割的觀念被一直沿用到今天,所以先想清楚View/Controller為什麼切割,原因何在?才是重點。「Model」是擴充出來的觀念(Concept extending),所以,可以先將「Model」是什麼放著不談。

將View與Controller切割是為了不讓控制的動作影嚮到畫面(View),根本原因是希望有更好的使用者體驗。做法很簡單,從現今的分時多工作業系統(Time-sharing & multi-task operating system)角度來看,只要切割成獨立的process即可。如圖1.1。


view-controller.png

二個process就使用訊息(message)傳遞的方式溝通,也就是我們所熟悉的IPC(Inter-process communication)。

切割 View & Control

Android 系統將 View & Control 切割,因為這樣可以設計出 UI 使用性更好的軟體。同時還有二個好處。第一、讓程式碼更容易維護,第二、軟體架構更清楚。為什麼將 View 與 Control 切割成獨立的 process,可以讓 Android 系統有更好的 UI 使用性呢?

讀者留言 (0)

留言功能維護中。將於近日重新開放。

連絡作者

Jollen Chen,Moko365(仕橙3G教室)講師,熱愛研究 Linux 與 Android 技術。曾為 Motorola、HTC、Foxconn、LG、OPPO、騰迅、廣達電腦、緯創、仁寶等超過 50 家企業講授課程。目前在 MokoVersity 擔任軟體工程師,撰寫 Node.js 程式,也在幾家科技廠兼任 Android Framework 研發顧問。您可透過電子郵件 <jollen (at) jollen (dot) org> 或這裡與我連絡。