软件架构--MVC介绍(垂直应用架构)

  • 1 介绍
  • 2 示例
  • 3 优势
  • 4 缺点
  • 参考

1 介绍

MVC(视图/模型结构)把数据和视图组件分离,这使得我们可以在几个不同的试图组件中显示相同的数据,并且实现新类型的视图,并且不改变底层的数据结构。也可以根据控制响应的不同命令,在同一个组件区创建不同的视图样式,来加载不同的输入数据。为了更灵活的对用户输入进行处理,引入了delegate这个概念。它的好处是,数据项的渲染与编程可以进行定制。

  • Model:model管理数据,负责数据的请求和更新
  • View:向用户展示数据
  • Controller:处理Model和View之间的交互。负责为View提供正确的数据,为Model提供来自View的操作请求。
    该模式降低耦合,多个View可以显示同一数据,View层不用担心数据层Model发生变化。

2 示例


3 优势

  • 技术单一、学习成本低
  • 开发上手快
  • 测试、部署和运维简单

4 缺点

  • 复杂应用的开发维护成本高,部署效率低,如全量编译和部署时长。
  • 团队效率差,部分公共功能重复开发,代码重复率居高不下。
  • 系统可靠性变差。随着业务的发展,访问量逐渐攀升,网络流量、负载均衡、数据库连接面临巨大压力。
  • 某节点故障,其他节点流量陡增,引起“雪崩效应”。
    维护和定制困难。物业代码膨胀,功能复杂,垂直架构模式下无法对复杂业务进行拆分,维护和定制都很困难。
  • 新功能上线周期变长。(1)公共API变更导致测试工作量激增。公共API变动,调用者都需要测试,引入大量回归测试工作量;(2)新特性无法独立部署和交付。新功能与老功能一起编译、大包和测试,这种强耦合导致交付效率下降。

参考

1、百科–MVC框架
2、Qt 5.12–Model/View模型/视图(MVC)模式
3、《分布式服务框架原理与实践》 作者 李林峰
4、波澜壮阔的MVC发展史

软件架构--MVC介绍(垂直应用架构)相关推荐

  1. 读书笔记 之《软件架构设计: 大型网站技术架构与业务架构融合之道》

    大家好呀,我是小菜~ 帅哥美女,知道你们时间宝贵,那么就由小菜为你读好一本书,读一本好书,取其精华,与你共享~! 本文主要分享 <软件架构设计:大型网站技术架构与业务架构融合之道> 如有需 ...

  2. asp.net core系列 40 Web 应用MVC 介绍与详细示例

    一. MVC介绍 MVC架构模式有助于实现关注点分离.视图和控制器均依赖于模型. 但是,模型既不依赖于视图,也不依赖于控制器. 这是分离的一个关键优势. 这种分离允许模型独立于可视化展示进行构建和测试 ...

  3. 软件架构万字漫谈:业务架构、应用架构与云基础架构

    软件架构万字漫谈:业务架构.应用架构与云基础架构 本部分节选自<软件架构设计> 软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案.而软件 ...

  4. MVC设计模式、单体架构、前后端分离、微服务

    萌新程序员在学习web开发时一定对单体架构.前后端分离架构.MVC.微服务这几个名词不陌生,想要搞清它们之间的关系,但互联网的信息分散杂乱,有些文章之间甚至还互相冲突. 我也迷迷糊糊,但本着刨根问底的 ...

  5. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

  6. MVC模式与三层架构的区别

    MVC模式与三层架构的区别 原文地址:http://www.cnblogs.com/yourshj/p/5197310.html 之前总是混淆MVC表现模式和三层架构模式,为此记录下. 三层架构和MV ...

  7. MySQL第6天:MySQL的架构介绍之逻辑架构

    MySQL的架构介绍之逻辑架构 #编写时间:2017.3.7 #编写地点:广州 MySQL的优势主要体现在存储引擎的架构上,它是插件式的存储引擎架构,将查询处理和其它的系统任务以及数据的存储提取分离, ...

  8. 单一应用架构 垂直应用架构_如何说应用架构的语言

    单一应用架构 垂直应用架构 How do you begin to engineer the world's best software application? As you live in an ...

  9. OpenMV(一)--基础介绍与硬件架构

    基础介绍与硬件架构 1. OpenMV介绍 1.1 什么是OpenMV 1.2 OpenMV与OpenCV 2. 硬件架构 2.1 OpenMV-H7 2.2 STM32H743 2.3 原理图 1. ...

最新文章

  1. ATS日志格式中的Squid-和Netscape-格式的缓存结果码
  2. 红旗Linux认证简介
  3. centos远程开机的操作
  4. 给未来元素添加事件 jquery 1.10.2 版本
  5. 用python实现矩阵乘法
  6. 网络编程应用:基于TCP协议【实现对象传输】--练习
  7. 解读容器 2019:把“以应用为中心”进行到底
  8. SpringBoot高级-检索-Elasticsearch简介安装
  9. python的应用论文_python 论文
  10. 程序员才能看懂,看到第18张终于忍不住笑喷了。
  11. KMP实现圆周率PI中找字串
  12. python.exe无法找到入口
  13. 【有料c++题目周刊 | 第一期】希腊诸神
  14. 《近代名老中医经验集》出版
  15. close函数 qt_QT5笔记:关闭应用程序和窗口的函数
  16. 通过经纬度计算两点间的直线距离
  17. UMA Frame Buffer Size 核显显存与CSGO帧率
  18. 关于浏览器账密自动填充
  19. 【超详细】如何从数据库取出数据,动态填充html
  20. Java Microbenchmark Harness (JMH)

热门文章

  1. Android横向ProgressBar
  2. 区块链+保险:众安在线养鸡,人寿精准扶贫
  3. 人工智能与医疗 总览
  4. 启扬智能床旁交互终端解决方案,建设智慧病房系统
  5. xtream codes的搭建
  6. ZigBee采集MPU6050数据
  7. java monitor是什么意思,Java面试常见问题:Monitor对象是什么?
  8. RNN、LSTM神经网络输入输出究竟是怎样的?
  9. 实现cookie跨域共享的两种方式
  10. 光电显示技术 2 阴极射线管显示技术