Android 进阶之框架模式 MVC

简介

MVC 全称是 Model - View - Controller,是模型(model)-视图(view)-控制器(controller)的缩写。MVC 是一种框架模式而非设计模式,GOF 把 MVC 看作是 3 种设计模式:观察者模式、策略模式与组合模式的合体,而核心是观察者模式。简而言之,框架是大智慧,用来对软件设计进行分工;设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

设计图

Android 进阶之框架模式 MVC

优点

由于 MVC 很好的分离了视图层和业务层,所以它具有以下优点:

  • 耦合性低
  • 开发速度快
  • 可维护性高
  • 易于理解

缺点

  • 由于 MVC 的设计思想是从 Model 出发,而没有考虑到 View 端的复杂性,这样导致的问题是 Model 难以符合复杂多变的 View 端变化。导致 Model 的作用很小,而很多 View 层的职责也转移到了 Controller 层。Controller 变得臃肿不堪。
  • 测试困难

关系

Android 进阶之框架模式 MVC

  • 视图层(View)
    对应于 xml 布局文件和 java 代码动态 view 部分
  • 控制层(Controller)
    MVC 中 Android 的控制层是由 Activity 来承担的,Activity 本来主要是作为初始化页面,展示数据的操作,但是因为 XML 视图功能太弱,所以 Activity 既要负责视图的显示又要加入控制逻辑,承担的功能过多。
  • 模型层(Model)
    针对业务模型,建立的数据结构和相关的类,它主要负责网络请求,数据库处理,I/O 的操作。

小结

  • 具有一定的分层,Model 彻底解耦,Controller 和 View 并没有解耦;
  • 层与层之间的交互尽量使用回调或者去使用消息机制去完成,尽量避免直接持有;
  • Controller 和 View 在 Android 中无法做到彻底分离,但在代码逻辑层面一定要分清;
    业务逻辑被放置在 Model 层,能够更好的复用和修改增加业务。