Android 中 MVC 的简单理解

Android 的当前开发MVP已成为开发主流模式,不过MVC的模式,当前项目中还在使用,翻阅了不少博客和网站,发现每个人理解的MVC 都不同,感觉好晕,简单的总结一下

MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。(wiki)
说到MVC,不得不提三种组件的功能:

模型(Model)负责处理数据和提供数据 (eg:实体Bean,Sql,缓存数据处理…)
用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法
视图(View)展示数据视图,与用户交互的页面 (eg: xml,Activity)
控制器(Controller)处理事件作出响应,负责业务逻辑的处理,起到不同层面间的组织作用,
用于控制应用程序的流程(“事件”包括用户的行为和数据 Model 上的改变)(eg:Activity,定义的Controller实现)

优点:

  • 重用性高 (多个 View 能共享一个 Model)
  • 耦合性低(三个模块保持相对独立)
  • 灵活性和可配置性(Controller 可以用来连接不同的 Model 和 View 去完成用户的需求,根据用户的需求选择适当的 Model 进行处理,然后选择适当的的 View 将处理结果显示给用户)
  • 模块开发

标准MVC 组件类型的关系和功能:
来源百度

MVC组件之间的典型合作:
来源wiki

在Android中,按照MVC三层来说
通常把Activity 当作Controller层,xml 当作View层,Activity 需要显示视图,这样View 和Controller并不能完全分离,也带来了Activity繁重的问题,Activity参与了大量的逻辑处理和视图交互,
MVC在Android 中表现的很尴尬,不明确
在这里插入图片描述
上图所示:Model 和View 之间用虚线来表示有关联,个人理解是:Model 数据发生改变,需要事件通过并且在Controller里面来更新View(也可以通过观察者模式来实现)。
多想了一步,如果把Activity当作View层,则需要建立Controller层,在Controller 层持有Model层的引用处理逻辑,在Model层处 理数据,再通过Controller 层回调给View层,参考Android基础——框架模式MVC在安卓中的实践

参考博客:
Android MVP Pattern
Android应用程序MVC框架实例分析
完全解析Android项目架构(1) - MVC
Android 设计模式之MVC,从一个实例中来理解MVC

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值