简介
MVC 全称是 Model - View - Controller,是模型(model)-视图(view)-控制器(controller)的缩写。MVC 是一种框架模式而非设计模式,GOF 把 MVC 看作是 3 种设计模式:观察者模式、策略模式与组合模式的合体,而核心是观察者模式。简而言之,框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。
设计图
mvc.png优点
由于 MVC 很好的分离了视图层和业务层,所以它具有以下优点:
- 耦合性低
- 开发速度快
- 可维护性高
- 易于理解
缺点
- 由于 MVC 的设计思想是从 Model 出发,而没有考虑到 View 端的复杂性,这样导致的问题是 Model 难以符合复杂多变的 View 端变化。导致 Model 的作用很小,而很多 View 层的职责也转移到了 Controller 层。Controller 变得臃肿不堪。
- 测试困难
关系
gx.png.png- 视图层(View)
对应于 xml 布局文件和 java 代码动态 view 部分 - 控制层(Controller)
MVC 中 Android 的控制层是由 Activity 来承担的,Activity 本来主要是作为初始化页面,展示数据的操作,但是因为 XML 视图功能太弱,所以 Activity 既要负责视图的显示又要加入控制逻辑,承担的功能过多。 - 模型层(Model)
针对业务模型,建立的数据结构和相关的类,它主要负责网络请求,数据库处理,I/O 的操作。
小结
- 具有一定的分层,Model 彻底解耦,Controller 和 View 并没有解耦;
- 层与层之间的交互尽量使用回调或者去使用消息机制去完成,尽量避免直接持有;
- Controller 和 View 在 Android 中无法做到彻底分离,但在代码逻辑层面一定要分清;
业务逻辑被放置在 Model 层,能够更好的复用和修改增加业务。
网友评论