Android 中的MVC與數據流動

今天看瞭一個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 ,監聽器做為控制器的一部分, 而模型應當獨立出來,這樣我覺得代碼

          的維護就比較簡單瞭。

        

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *