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被表示成相应服务调用的代理。

  • 相关阅读:
    Pandas绘图不支持中文解决方案
    MVC模式
    解决import javafx.geometry.Point2D无法导入的问题
    初学linux时遇到的那些哭笑不得的问题
    啊啊我找不到web.xml怎么办呀~~
    解决JSP调用JavaBean出现乱码问题
    设置eclipse自动补全
    ubuntu下eclipse java ee首次打开提示找不到jdk的问题
    android webview 报 [ERROR:in_process_view_renderer.cc(189)] Failed to request GL process. Deadlock likely: 0 问题
    ubuntu创建文件夹桌面快捷方式
  • 原文地址:https://www.cnblogs.com/grkin/p/2970449.html
Copyright © 2011-2022 走看看