Android 的当前开发MVP已成为开发主流模式,简单的总结一下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组件之间的典型合作:
在Android中,按照MVC三层来说
通常把Activity 当作Controller层,xml 当作View层,Activity 需要显示视图,这样View 和Controller并不能完全分离,也带来了Activity繁重的问题,Activity参与了大量的逻辑处理和视图交互,类似这样
多想了一步,如果把Activity当作View层,则需要建立Controller层,在Controller 层持有Model层的引用处理逻辑,在Model层处 理数据,再通过Controller 层回调给View层,参考Android基础——框架模式MVC在安卓中的实践
参考博客:
https://www.cnblogs.com/CVstyle/p/6389990.html
https://www.jianshu.com/p/1912473dff9a
https://blog.csdn.net/qq_36510659/article/details/79073021