MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种框架模式。将业务逻辑、数据、界面分离的一种代码组织方式,修改界面时无需去修改业务逻辑。
Model:模型层,负责处理数据的加载或存储。
View:视图层,负责界面数据的展示,与用户进行交互。
Controller:控制器层,负责逻辑业务的处理。
1.View接受用户的请求,然后将请求传递给Controller。
2.Controller进行业务逻辑处理后,通知Model去更新。
3.Model数据更新后,通知View去更新界面显示。
MVC的优点
- 视图层(View)与模型层(Model)解偶,通过Controller来进行联系。
- 模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。
MVC的缺点
- Android中使用了Activity来充当Controller,但实际上一些UI也是由
Activity
来控制的,比如进度条等。因此部分视图就会跟Controller捆绑在同一个类了。同时,由于Activity
的职责过大,Activity
类的代码也会迅速膨胀。 - MVC还有一个重要的缺陷就是View跟Model是有交互的,没有做到完全的分离,这就会产生耦合。