加入收藏 | 设为首页 | 会员中心 | 我要投稿 桂林站长网 (https://www.0773zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

软件架构编年史

发布时间:2021-04-18 17:40:02 所属栏目:外闻 来源:互联网
导读:隔离。该模式当时被应用于1973 就已经出现的桌面图形界面的开发。 MVC 模式将代码拆分成了三个概念单元: 代表业务逻辑的 Model (模型); 代表 UI 控件的 View (视图):按钮、文本框等等; 在视图和模型之间居中协调的 Controller(控制器),这意味着: 它决定显

隔离。该模式当时被应用于1973 就已经出现的桌面图形界面的开发。

MVC 模式将代码拆分成了三个概念单元:

  • 代表业务逻辑的 Model (模型);
  • 代表 UI 控件的 View (视图):按钮、文本框等等;
  • 在视图和模型之间居中协调的 Controller(控制器),这意味着:
    • 它决定显示哪些视图以及哪些数据;
    • 它将用户操作(例如点击按钮)转换成业务逻辑。

模型可以是单个对象(相当无趣),也可以是对象组成的某种结构。——Trygve Reenskaug 1979, MVC

最初的 MVC 模式还有其它一些需要了解的的重要概念:

  • View 直接使用 Model 数据对象来展示数据;
  • 当 Model 发生变化时,会触发一个事件立即更新 View(记住,1979年还没有 HTTP);
  • 每一个 View 通常只关联一个 Controller;
  • 每个界面可以包含多对 View 和 Controller;
  • 每个Controller 可以对应多个 View。

现在我所熟知的 HTTP 请求响应范式并没有使用最初的 MVC 风格。这是因为,按照原始的设想,数据从 View 流向 Controller,这和我熟悉的一样,但另一边,数据直接从 Model 流向 View,并没有经过 Controller。

而且,在现在的请求响应范式中,当数据库中的数据发生变化时,并不会触发浏览器中展示 View 的更新(尽管可以用 Web Socket 实现)。要看到更新后的数据,用户需要发起一次新的请求,而更新的数据总是会通过 Controller 返回。称 HMVC,在 UI 片段控件化的上下文中它能带来更好的模块化拆分。

例如,我们会发现 View 的一部分被其它一些 View 以同样的格式使用,甚至直接就在同一个 View 重复使用。一个实际的例子就是网页展现 RSS 订阅内容的片段,它可以被其它页面重用。

如果使用 HMVC,处理主请求的 Controller 会将子请求转发给其它 Controller 让这些控件进行渲染,然后在主 View 的渲染中合并它们。

在 HTTP 请求/响应范式的上下文里,我自己也曾遇到过几次这种情况,但我发现了一个更简单的方法,即让 UI 向可以渲染控件的 Controller 发起 AJAX 调用。在保持模块化优势的同时并没有增加嵌套 Controller 调用带来的复杂性,

(编辑:桂林站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读