概念
Android应用是基于MVC(Model-View-Controller)的架构模式进行设计的。Android应用中的任何对象,都属于模型对象,控制器对象,视图对象三类对象中的任何一种:
模型对象
模型对象存储着应用的数据和业务逻辑。模型类通常用来映射与应用相关的一些事物。模型对象不关心用户界面,它存在的唯一目的就是存储和管理应用数据。应用的全部模型对象组成了模型层。
在Android的世界里,模型类一般是开发者自定义的类,对应着应用业务相关的事物。
视图对象
视图对象知道如何在屏幕上绘制自己以及如何响应用户的输入,如用户的touch事件等。一个简单的经验法则是,凡是能够在屏幕上看见的对象,都是视图对象。应用的全部视图对象组成了视图层。
Android应用里,视图对象可能是Button,TextView等View类,也可能是用户自定义的各种View类,还可能是LinearLayout,RelativeLayout,RecyclerView等各种ViewGroup类。
控制器对象
控制器对象含有应用的逻辑单元,是视图对象与模型对象的联系纽带。控制对象响应视图对象触发的各类事件,此外还管理着模型对象和视图对象之间的数据流动。注意,模型对象与视图对象不直接交互,控制器对象作为它们之间的联系纽带,接收对象(可能是V或M)发送的消息,然后向其它对象(可能是M或V)发送操作指令。
在Android的世界里,控制器对象通常是Activity,Fragment,Service中的一个子类。
使用MVC设计模式的好处
以类来组织代码有助于从整体视角设计和理解应用,这样可以按类,而不是按变量和方法去思考和设计开发的问题
把对象按MVC三层进行分类组织,也有助于我们设计和理解应用。这样可以按层次,而不是按一个个类来考虑设计开发。如下图的事例,非常有层次感。
- 使用MVC模式可以让类的复用更加容易。相比功能多而全的类,功能单一的专用类更加有利于代码复用。