zoukankan      html  css  js  c++  java
  • 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 ,监听器做为控制器的一部分, 而模型应当独立出来,这样我觉得代码 

              的维护就比较简单了。

             

  • 相关阅读:
    childNodes和Children的区别
    解决org.hibernate.QueryException illegal attempt to dereference collection 异常错误
    莆田系医院名单
    SQLite3初级使用
    dwr学习 之 一、dwr+spring的简单集成
    GitHub使用方法(初级)
    MyEclipse中安装SVN插件的最有效的方法
    Firefox下载安装fireBug提示下载出错的解决方案
    音频在线剪截
    解析新第三方登录方式——苹果登录「Sign in with Apple
  • 原文地址:https://www.cnblogs.com/james1207/p/3271378.html
Copyright © 2011-2022 走看看