优雅的MVC思想

问题提出

1.代码规范。

我见多很多同学代码不注意规范,经常在控制器里面写业务逻辑,更有甚者将业务的逻辑写在sql里面,最后导致一个问题:代码维护困难。功能实现了没错,但增加了系统维护复杂度真的好吗?事实上真正牛X的人,一定是思路非常清晰,代码便于维护管理,便于其他人上手,而不是一坨代码冗在一起,中间挖了坑,等着自己或别人跳。

个人见解

说下个人对于MVC的理解。

V:VIEW视图。可以表现为java中的对象数据(实体),也可以表现为页面。页面和对象数据是相互联系的,实体对象可以应用在页面中。根据业务需要,它有需要考虑一个问题:要传递什么参数?需要ajax还是http调用看页面需求。

C:Controller控制器。控制器主要做转发,不参与业务逻辑,主要接收页面参数给服务端,从服务端获取信息返回给View。它不需要考虑太多问题,只需要获取参数信息进行业务调用,可以在过程中捕获异常,最后可以再次进行数据简单包装传递给VIEW。

M:Modle业务逻辑层。他负责处理数据库中的数据,它有两个问题需要考虑。1:需要什么参数才能到数据库获取想到的数据?2:需要返回什么数据才能满足用户需求?如果考虑清楚了就可以写接口方法了。

代码规范很重要。

这大概就是新手程序员朋友们入门的基础。当然这个过程不是一蹴而就的,需要有代码的积累。

MVC是一种思想,一种代理思想, 控制器就是代理对象,被代理的对象是 V控制器就是业务和视图连接的桥梁 但他并不是一个框架,框架是需要代码支撑的;另外他也是一种设计模式,只不过是这种模式和23种模式不一样,是数据后端框架的一种思想和模式。

下图是一次用户点击操作,后端处理流程,就用到了MVC思想。

优雅的MVC思想

您再仔细看上面这张图,你会发现好多MVC。

优雅的MVC思想

他切萝卜。 他是View,是一块块萝卜,M是切的过程,C是他。参数是整根萝卜。

柜子被吊在墙壁上。View是最终安装效果,M是安装过程,C是工人,参数是墙和柜子。

水果被摆在盘子里。

酒被放在桌子上。

他染了头发。

他戴了眼睛。

。。。。。

MVC无穷无尽哈。

总结

好了,今天我们就介绍到这里吧,有不明白的可以下面留言哦。喜欢的请点赞加关注哦。我是 叫练【公众号】,边叫边练。

优雅的MVC思想

参考链接:

https://blog.csdn.net/weixin_45752063/article/details/102613928 ;MVC不属于23种设计模式之

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

Original: https://www.cnblogs.com/jiaolian/p/16700378.html
Author: 叫练
Title: 优雅的MVC思想

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589866/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Android 图片设置圆角

    Android 开发中,经常需要对图片进行二次处理,比如添加圆角效果 或 显示圆形图片; 通过第三方框架 Glide 设置圆角效果; 写法1: RequestOptions opt…

    Java 2023年6月5日
    072
  • 浅谈kali : arpspoof工具原理

    介绍 arpspoof是一个通过ARP协议伪造数据包实现中间人攻击的kali工具。 中间人攻击虽然古老,但仍处于受到黑客攻击的危险中,可能会严重导致危害服务器和用户。仍然有很多变种…

    Java 2023年6月7日
    077
  • Java SE-集合

    Java 的集合体系 Java集合可分为两大体系:Collection 和 Map 1.常见的Java集合如下: Collection接口:单列数据,定义了存取一组对象的方法的集合…

    Java 2023年6月10日
    089
  • 确定稳定的 Spring Cloud 相关环境版本

    开发部署 Spring Cloud 微服务框架,需要先确定 Spring Cloud 的相关环境版本,主要包含:Spring Cloud、Spring Cloud Netflix、…

    Java 2023年5月30日
    067
  • 大厂钟爱的全链路压测有什么意义?四种压测方案详细对比分析

    全链路压测? 基于实际的生产业务场景和系统环境,模拟海量的用户请求和数据,对整个业务链路进行各种场景的测试验证,持续发现并进行瓶颈调优,保障系统稳定性的一个技术工程。 针对业务场景…

    Java 2023年6月15日
    097
  • nginx url自动加斜杠的问题

    内部服务器使用nginx,做网站测试之用。不同域名使用端口号区分,如www用默认的80端口,其它域名用81,82… 有时直接在地址栏敲网址,会发现跳转到localhos…

    Java 2023年5月30日
    072
  • 建造者模式

    建造者模式:使用多个简单的对象一步一步构建成一个复杂的对象,适用于一些基本的组成不变,但是可以有多种组合,也就是所谓的”套餐”。不多说,直接上代码 第一步创…

    Java 2023年6月9日
    076
  • Ehcache计算Java对象内存大小

    在EHCache中,可以设置maxBytesLocalHeap、maxBytesLocalOffHeap、maxBytesLocalDisk值,以控制Cache占用的内存、磁盘的大…

    Java 2023年5月29日
    077
  • 在 ML.NET 中使用Hugginface Transformer

    这就是 开放神经网络交换 ( ONNX) 文件格式。此文件格式是 AI 模型的开源格式,它支持框架之间的 互操作性。 基本上,您可以在一个机器学习框架(如 PyTorch)中训练模…

    Java 2023年6月5日
    092
  • nginx 配置文件服务器

    csharp;gutter:true; server { listen 80; server_name localhost;</p> <pre><co…

    Java 2023年5月30日
    0101
  • Java性能调优工具

    JDK命令行:jps、jinfo、jstat、jmapMAT:Eclipse Memory AnalyzerJMX – Jconsole,VisualVMBtrace:…

    Java 2023年5月29日
    068
  • SpringBoot打包第三方本地jar包

    有一些包我们maven仓库找不到,那就只能在项目中引入本地jar包文件,但是maven打包的时候会显示没有这个jar包 首先我们把jar包放到resource下的lib文件夹 然后…

    Java 2023年5月30日
    074
  • SpringBoot项目解决全局响应返回中文乱码问题

    一、问题 新建的基于SpringBoot的MVC项目,在请响应体中,如果有中文,会显示为乱码。 二、解决方案 1、在application.properties中设置: Origi…

    Java 2023年5月30日
    074
  • SpringBoot Bean指定初始化顺序详解

    转自:https://blog.csdn.net/zzhongcy/article/details/109504563 最近遇到SpringBoot容器外类初始化依赖容器内bean…

    Java 2023年5月30日
    0136
  • DBExplorer使用和修改整理

    2 DBExplorer介绍 DBExplorer是一个B/S架构的Web程序,基于JDBC连接数据库服务。它采用Extjs构建GUI,因此也具有和C/S程序一样良好的使用体验。 …

    Java 2023年6月7日
    0157
  • 聊聊客户档案模型的设计与管理

    可以简单,更需要复杂; 一、基础描述 围绕客户管理通常分为售前、售中、售后、三个核心阶段,即营销、销售、服务三个核心流程与策略,在之前的文章中有聊过CDP系统的设计,本篇从客户档案…

    Java 2023年6月15日
    084
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球