MVC相关问题总结
MVC
MVC定义:
M:model 模型
V:view 视图
C: controller 控制器
业务逻辑,界面,数据显示分离。
M: 处理业务逻辑
比如说数据库的操作,网络操作,甚至一些耗时操作都会放到model里面
V:处理数据显示部分
xml布局可以视为view层
C:主要是通过Activity处理用户交互的问题
Activity可以视为Controller层
优点:
便于UI界面的显示,和业务逻辑的分离
缺点:
在Activity中业务逻辑还是过于冗余,因此引入MVP模式。
特点:
-
耦合性低
m,v,c三方分离,达到数据解耦的目的
减少模块代码之间的相互影响 -
可扩展性好
-
模块职责划分明确
举例:
Activity中有一个WeatherModel
在点击事件onClick里面,Activity拿到view的数据交给model来处理
model处理完之后通过观察者模式,交给listener,listener的onSuccess在Activity里实现,最终实现数据展示。
MVC总结
-
利用MVC设计模式,使得项目有了很好的可扩展和维护性
只需要添加接口和实现接口,然后在接口里面,实现你想要做的功能就可以
当你需要改变UI的时候,不需要改变Activity中的代码,只需要实现里面的接口,就可以将业务逻辑和显示分离 -
controller(控制器)是一个中间桥梁作用
-
什么时候适合mvc设计模式?
当一个项目很小且无需频繁修改需求的时候,根本不需要用mvc,如果用了反而使得项目过度设计,显得很冗余
比较适合大项目,一个是业务逻辑复杂,一个是迭代需求比较频繁。页面显示有比较多。
此时需要通过mvc来使项目设计更加的模块化。