今天看了一个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 ,监听器做为控制器的一部分, 而模型应当独立出来,这样我觉得代码

的维护就比较简单了。

更多相关文章

  1. Android核心功能
  2. Android(安卓)轻量级存储方案的前世今生
  3. Android(安卓)SQLite
  4. Android消息机制的原理及源码解析
  5. Android(安卓)Volley完全解析(三),定制自己的Request
  6. Android(安卓)通过代码实现控制数据网络的开关(仅适用于5.0以上)
  7. Android之SQLite开发(2)—SQLiteOpenHelper类
  8. Android中使用Gson解析JSON数据
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. Android Retrofit 2.0(二)使用教程OkHttp3
  2. android Java BASE64编码和解码二:图片的
  3. BroadcastReceiver实现android来去电录音
  4. [置顶] Android(安卓)AsyncTask源码解析
  5. Android(安卓)UI开发详解之Fragment
  6. 通过JNI实现c/c++和Android的java层函数
  7. Android屏幕禁止休眠的方法
  8. android笔记-android基本操作和数据存储
  9. Android 用Shell命令设置静态ip
  10. Android 相对布局(Relative Layout)