Android应用的两种设计模式

MVC模式

  针对简单的应用,可以使用模式-视图-控制器(Model-View-Controller,MVC)的架构进行设计。在这种设计模式下,应用中的任何对象,都属于模型对象,视图对象或者控制器对象中的一种。

  模型对象存储着应用的数据和业务逻辑。模型类通常用来映射与应用相关的一些事物,如用户、商店里的商品、服务器上的图片或者一段电视节目,抑或GeoQuiz应用里的地理知识问题。模型对象不关心用户界面,它为存储和管理应用数据而生。Android应用里,模型类通常就是我们创建的定制类。应用的全部模型对象组成了模型层。

  视图对象知道如何在屏幕上绘制自己,以及如何响应用户的输入,如触摸动作等。一个简单的经验法则是,凡是能够在屏幕上看见的对象,就是视图对象。Android自带很多可配置的视图类。当然,也可以定制开发其他视图类。应用的全部视图对象组成了视图层。

  控制器对象含有应用的逻辑单元,是视图对象与模型对象的联系纽带。控制器对象响应视图对象触发的各类事件,此外还管理着模型对象与视图层间的数据流动。

  随着应用功能的持续扩展,应用往往会变得过于复杂而让人难以理解。以Java类组织代码有助于从整体视角设计和理解应用。这样,我们就可以按类而不是按变量和方法思考设计开发问题。同样,把Java类以模型层、视图层和控制器层进行分类组织,也有助于我们设计和理解Android应用。这样,我们就可以按层而非一个个类来考虑设计开发了。

MVVM架构

  当应用程序随着不断开发,添加新功能后,应用越来越复杂,添加性功能和改bug需要耗费很长时间,这时就要对控制器层进行拆分了。这就是MVVM(模型-视图-视图模型)架构。MVVM架构很好地把控制器里的臃肿代码抽到布局文件里,让开发人员很容易看出哪些是动态界面。同时,它也抽出部分动态控制器代码放入ViewModel类,这大大方便了开发测试和验证。

  使用视图模型需要用到数据绑定。数据绑定把部分关联视图更新的数据模型变量在布局文件中声明,并使用绑定操作符@{}使用这些变量。这样视图就会随着变量的改变自动更新,不需要在控制器层写任何代码。

  但如果把数据和模型直接绑定到一起,就会破坏类设计的责任单一性原则。虽有需要定义一种叫做视图模型的新对象,配合数据绑定使用。

  视图模型相对于数据模型中需要动态展示数据的封装,里面有get和set函数供布局使用。
视图模型不单独使用,它作为数据绑定类方法setViewModel的参数。然后在绑定方法中,更新视图模型用到的数据。

  视图模型类继承BaseObservable并在视图模型类中把可绑定属性用@bindable注解。这样可以在视图变化是,绑定类会得到一个回调。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟人斩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值