今天看了一個Android的Training生命週期轉換的例子,頓覺得他的設計非常巧妙,我的分析如下:
1.在com.example.android.lifecycle包中有:
3個正常的全屏activity,一個類似dialog的activity
2.在com.example.android.lifecycle.util包中有:
StatusTracker.java, 用於將activity產生的已執行的周期函數和當前的狀態儲存在兩個list中
Utils.java, 用一個線程動態更新activity中的兩個顯示當前周期函數調用棧幀和當前activity所處的狀態
當讀到這個代碼時,覺得寫的很順意,很快就知道這是怎麼回事兒,我把它歸結為:
activity中產生資料(訊息),切換狀態
StatusTracker.java 儲存資料(訊息)
Utils.java 讀取或是說消費資料,也可以說是將訊息展示出來。
這似乎和出名的MVC相像,但有不全像,但此種設計確非常的清晰,而且非常的高效
這裡把資料的產、存、消分開寫,思路很不錯
在android的開發中,我覺得也應用到MVC,他將資料與邏輯分離,這樣看起來思路清晰
Activity無時無刻不在與使用者接觸,接受使用者的事件,資料等,然後響應,做出一定的改變,
對此,我覺得應該也把相應的資料和邏輯分出來,這樣不至於第二次看代碼時,還不知道這
部分是幹嘛用的,還得苦心思去冥想這個類在此扮演了什麼角色。
Android中,呈現資料的效果無疑不是xml檔案,這個可以做為view,沒有邏輯
在activity中有一堆的事件監聽,我認為可以把獲得使用者的事件的訊息分離出來,另外寫一個
包或類控制器來處理,監聽事件中只負責接受訊息,將訊息傳入控制器,根據控制器來更新view
模型當然是獨立的了,有控制器來串連,主要用來做資料的儲存、封裝等
總的來說,xml檔案為試圖view ,監聽器做為控制器的一部分, 而模型應當獨立出來,這樣我覺得代碼
的維護就比較簡單了。