MVC框架模式(二)

       上一篇文章对MVC框架模式做了简要概述并且在文章的最后给出了MVC3个组件之间相互工作的逻辑图,在本文我们将进一步对模型(model)-视图(view)-控制器(controller)各自的概念及他们之间协同工作的原理进行剖析。

模型(Model)

  • 业务逻辑。封装了业务逻辑和数据
  1. 业务逻辑(软件的核心)
  2. 数据以及访问它们的函数(视图组件使用)
  3. 执行特定应用程序处理的过程(控制器代表用户调用)
  • 模型对于用户来说是不可见的(M与V独立)
  • 模型独立与特定输出表示或者输入方式(M与C独立)
  • 用户只能通过控制器操作模型(C是M与V之间的桥梁)

视图View

  • 表示层。就是用户看到并与之交互的界面,通常实现数据的输入和输出功能。
  • 从模型获得数据 。通过状态查询函数实现(例如:定时刷新)   
  • 向用户显示信息
  1. 不同的视图使用不同的方法呈现信息
  2. 每个视图组件都有一个更新函数,这个函数被模型变更通知激活
  3. 这个函数被激活(此时模型已经改变)后,将使得视图重新和模型一致
  4. 在初始化阶段,视图向模型登记请求变更通知

控制器Controller

  • 控制层。起到控制整个业务流程的作用,实现View层跟Model层的协同工作。
  • 每个视图有一个相关的控制器组件(一一对应)
  • 用户仅仅通过控制器与系统交互
  • 控制器组件接收事件,并翻译成输入
  1. 事件如何发送到控制器由用户界面平台决定
  2. 事件被翻译成为对模型或者视图的请求
  3. 如果控制器的行为依赖于模型的状态,那么控制器也需要向模型登记请求变更通知(例如:用户点击按钮,按钮的事件响应函数将采取相应的措施处理用户要求)

变更传播机制

  • 一个模型可以对应多个视图
  1. 如果用户通过一个视图的控制器改变了模型中的数据,那么依赖于该数据的其他视图也应该反映出这样的变化
  2. 一旦模型的数据发生了变化,模型需要通知所有相关的视图做出相应的变化
  • 维护数据的一致性
  1. 这样的方式可以通过观察者(Observer)设计模式完成
MVC框架模式(二)_第1张图片

你可能感兴趣的:(mvc,框架,android)