Android Launcher构建之系统框架模型

来源:互联网 发布:怎么在淘宝搜vpn 编辑:程序博客网 时间:2024/03/29 19:54

     框架选择是代码构建的第一步,他将直接影响到后续工作的开展与最终实现的健壮程度。一个比较完整的项目架构,需要考虑到用户需求与体验,性能制约与优化,自适应能力与资源优化,差异剥离与共性聚合,协同开发与代码管理 ....等等。基于现有的架构之上做开发,并不只是简单地填充代码,而是在熟悉这套开发架构的基础之上,不断完善优化并反复审查新引入代码是否会造成对框架的破坏。故接下来将从框架层面查看Launcher构建,考虑一个软件的设计。

          Launcher2 采用MVC模式设计已不是什么秘密。MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法。模型Model是应用对象,视图View是他在屏幕上的表示,控制器Controller定义用户界面对用户输入的响应方式。不使用MVC模式将导致代码在不经意间将他们混在一起,维护与修改带来的问题可想而知。





    上图是省略了Controller的模型,模型包含了一些数据值,当数据发生变化时,对应的视图就会接收到来之模型的通知,视图可以进行同步更新,对应launcher中的APK安装、卸载、语言切换等。反之用户可以通过操作修改View显示,当用户动作生效后Controller将通知Model修改对应的数据以保持向下同步,对应Launcher的ShotCut移动、删除、文件夹操作等。于是我们可以得到如下闭环模型。



    而将视图和模型分离的设计,即将对象分离,使得一个对象的改变能够影响另一些对象,而这个对象并不需要知道那些被影响的对象的细节。这个更一般的设计被描述成Observer模式。

    Observer模式定义了对象间的一种“一对多”类型依赖关系;当模型发生改变时,依赖他的相应视图都要更新,即当卸载APK、移除安装有APK的SD卡等,模型必须负责更新WorkSpace Folder AllAppList等视图的状态,否者就会出现应用运行报错。


原创粉丝点击