zoukankan      html  css  js  c++  java
  • MVC模式小结

    MVC模式是针对GUI应用的软件架构模式,他体现了关注点分离这样一个基本的设计方针,将一个人机交互应用涉及的功能分为Model,Controller, View三部分,以下是它们相应的职责。

    --Model 是对应用状态和业务功能的封装,Model接受Controller的请求,并完成相应的业务处理,在状态改变时向View发出相应的通知。

    --View 实现可视化界面的呈现并捕捉最终用户的交互操作(比如鼠标和键盘操作)。

    --Controller接受View转发过来的用户操作,完成响应的UI逻辑。如果需要涉及到业务功能的调用,Controller会直接调用Model。在完成UI处理之后,Controller会根据需要控制原来的View或者创建新的View对用户交互操作予以响应。

    以下是三者的交互图

    image

    很多人认为Controller仅是View和Model之间的中介,其实不是这样,View和Model也可以有直接联系,View可以直接调用Model查询其状态信息。当Model状态发生改变时,他也可以直接通知View。i如在一个提供股票实时价位的应用中,维护股票价格变化信息的Model在状态改变时,可以直接通知相关的View改变其显示信息。

    Model针对View的状态改变状态通知和View针对Controller的用户交互通知都是单向的,可以用事件机制来实现。从设计角度来看,View作为Model的观察者通过注册响应的事件来检测状态改变。而Controller作为View的观察者通过注册相应的事件来处理用户的交互操作。

    controller -----观察----->View-----观察----->Model

    Model维护着整个应用的状态并实现所有的业务逻辑,所以它更多是一个领域模型,而对于多层架构来说,Model更多体现为访问业务层的入口,如果是面向服务的设计,业务被定义成相应服务,并通过接口(契约)的形式暴露出来,这里Model被表示成相应服务调用的代理。

  • 相关阅读:
    PHP Notice: Undefined index:解决方法
    javascript监听手机返回键
    jquery判断手指滑动方向
    php 5.5使用 array_column的方法
    html5 点击播放video的方法
    mysql并发量过大造成 update语句更新错误
    html5 微信真机调试方法vConsole
    PHP防止客户端多次点击
    jquery设置html5音量的方法
    设计模式六大原则
  • 原文地址:https://www.cnblogs.com/grkin/p/2970449.html
Copyright © 2011-2022 走看看