架构——MVC的理解

简介: 我一直以为我理解的MVC就是springMVC这些呢;前段时间和高人针对于MVC交流了一下,具体一点应该是请教了一下;结果完全超乎我的理解,没想到springmvc、mvp、后端mvc、mvvm都只是它的一个运用。

一、背景介绍


我一直以为我理解的MVC就是springMVC这些呢;前段时间和高人针对于MVC交流了一下,具体一点应该是请教了一下;结果完全超乎我的理解,没想到springmvc、mvp、后端mvc、mvvm都只是它的一个运用。


二、思路&方案


规范要求(所有资料和结果都要有大量依据):


  • 1.发展史
  • 2.百度百科的介绍(基础知识的概念宏观总结)
  • 3.官方文档(具体的细节和应用)
  • 4.优缺点
  • 5.使用场景
  • 6.同类对比
  • 7.图和代码的对应关系


三、过程


  • 1.发展史:

https://www.cnblogs.com/dadadechengzi/p/10028588.htmlhttps://blog.csdn.net/u012028371/article/details/53006075

https://www.cnblogs.com/jmqm/p/8688986.html

http://www.mybatis.cn/archives/634.html


  • 2.百度百科:

https://baike.baidu.com/item/MVC%E6%A1%86%E6%9E%B6/9241230?fromtitle=mvc&fromid=85990&fr=aladdin#6_2



  • 4.优势、劣势

优点

多视图共享一个模型,大大提高了代码的可重用性

MVC 三个模块相互独立,松耦合架构

控制器提高了应用程序的灵活性和可配置性

有利于软件工程化管理

总之,我们通过 MVC 设计模式最终可以打造出一个松耦合+高可重用性+高可适用性的完美架构。

缺点

原理复杂

增加了系统结构和实现的复杂性

视图对模型数据的低效率访问?


  • 5.使用场景

1.纯前端:mvvm

2.前后端:spring mvc

3.纯后端:mvc(v为数据存储容器)


  • 6.同类对比


  • 7.图和代码的对应关系(这里就先仅展示两个最终宏观图,具体的代码实现会在后续项目的重构的总结中展示)


3e50ea58ac874c6ba6a9dfc60acfb9c3.png

59b774c483bb4e98b77a364f848ad0a3.png


四、总结


  • 1.随着技术的演变,MVC的思想在不同阶段的呈现形式是不一样的,比如CS和BS的时代就有所不同


  • 2.针对于现在前后端分离的架构,纯后端mvc的理解,C就是对应的controller层、M就是装载数据的实体、V就是存储数据的容器(要返回给前端的html代码或者承载数据的容器)


  • 3.前端的MVVM,其中的M是存放样式布局的容器、V是渲染的html代码、VM是控制m和v绑定的东西


  • 4.按照这样的思路去落地实现,前端的那些组件复用、扩充、维护就显得轻轻松松了


五、升华


对于一个知识不同程度的理解以及不同的抽象层级决定了后续运用过程中落地的程度,没有高人的指导很多东西我们往往会看成透明的

期待自己的项目落地总结。

相关文章
|
6月前
|
设计模式 存储 前端开发
MVVM、MVC、MVP三种常见软件架构设计模式的区别
MVC、MVP 和 MVVM 是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。
138 12
|
1月前
|
存储 前端开发 调度
Flux 与传统的 MVC 架构模式区别
Flux是一种用于构建用户界面的架构模式,与传统的MVC架构不同,它采用单向数据流,通过Dispatcher统一管理数据的分发,Store负责存储数据和业务逻辑,View只负责展示数据,使得应用状态更加可预测和易于维护。
|
4月前
|
设计模式 前端开发 数据库
哇塞!Rails 的 MVC 架构也太牛了吧!快来看看这令人惊叹的编程魔法,开启新世界大门!
【8月更文挑战第31天】《Rails中的MVC架构解析》介绍了Ruby on Rails框架核心的MVC设计模式,通过模型(Model)、视图(View)和控制器(Controller)三部分分离应用逻辑,利用Active Record进行数据库操作,ERB模板渲染视图,以及控制器处理用户请求与业务逻辑,使代码更易维护和扩展,提升团队开发效率。
82 0
|
1月前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
3月前
|
设计模式 前端开发 数据库
理解mvc架构
mvc架构
34 4
|
4月前
|
设计模式 存储 前端开发
MVC革命:如何用一个设计模式重塑你的应用架构,让代码重构变得戏剧性地简单!
【8月更文挑战第22天】自定义MVC(Model-View-Controller)设计模式将应用分为模型、视图和控制器三个核心组件,实现关注点分离,提升代码可维护性和扩展性。模型管理数据和业务逻辑,视图负责数据显示与用户交互,控制器处理用户输入并协调模型与视图。通过示例代码展示了基本的MVC框架实现,可根据需求扩展定制。MVC模式灵活性强,支持单元测试与多人协作,但需注意避免控制器过度复杂化。
48 1
|
4月前
|
开发者 前端开发 Java
架构模式的诗与远方:如何在MVC的田野上,用Struts 2编织Web开发的新篇章
【8月更文挑战第31天】架构模式是软件开发的核心概念,MVC(Model-View-Controller)通过清晰的分层和职责分离,成为广泛采用的模式。随着业务需求的复杂化,Struts 2框架应运而生,继承MVC优点并引入更多功能。本文探讨从MVC到Struts 2的演进,强调架构模式的重要性。MVC将应用程序分为模型、视图和控制器三部分,提高模块化和可维护性。
50 0
|
4月前
|
存储 前端开发 数据库
神秘编程世界惊现强大架构!Web2py 的 MVC 究竟隐藏着怎样的神奇魔力?带你探索实际应用之谜!
【8月更文挑战第31天】在现代 Web 开发中,MVC(Model-View-Controller)架构被广泛应用,将应用程序分为模型、视图和控制器三个部分,有助于提高代码的可维护性、可扩展性和可测试性。Web2py 是一个采用 MVC 架构的 Python Web 框架,其中模型处理数据和业务逻辑,视图负责呈现数据给用户,控制器则协调模型和视图之间的交互。
42 0
|
5月前
|
存储 前端开发 算法
MVC(Model-View-Controller)架构
MVC架构帮助开发者构建清晰、可维护和可扩展的Web应用程序。
44 2
|
6月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
92 1