[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 使用性呢?

Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue

您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw