MVC减少编程复杂性

JSP的两种设计模式(MVC模型和非MVC模型) 上个星期刚学到JavaBean,学的不是很懂,在这里做下梳理 JavaBean是一种可重用组件技术,可以将内部动作封装起来,用户不需要了解其如何运行,只需要知道如何设计调用及处理结果就可以来。在开发动态网站的时候,我们使用JavaBean可以简化JSP页面的设计和开发,提高代码的可读性,从而提高网站应用的可靠性和可维护性。 一、非MVC模式 在基于JSP的B/S模式的程序开发中,非MVC模式是一种... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> MVC   随着面向对象的语言(如Java)的迅速发展和普及,越来越多的编程人员开始在应用开发中使用这些语言。然而原有的开发语言(即面向操作的开发语言如C++等)在短时间内还不可能退出历史舞台,因此现在就出现了面向对象的语言和传统的面向操作的语言共存的局面。在设计应用中同时使用两类不同的语言(混合语言设计)比过去只使用一类语言会带来许多新的问题,其中复杂性就是混合语言设计中最经常遇到的问题。下面我们探讨混合语言设计中可能导致复杂性增加的地方,以及如何减少以至消除这些复杂性。   复杂性   复杂性是应用开发过程中最令人头疼的一个问题。每当在一个应用中增加一个功能时,它的复杂性通常呈几何级的增长。这种复杂性往往导致程序的开发无法再继续下去。这也是现在为什么许多应用只有Beta版本而没有正式版的原因。   专家将应用开发过程产生的复杂性分为两类,即非本质的(accidental)和本质的(essential)。本质的复杂性是对于解决目标问题所必然产生的复杂性,非本质的复杂性是由于选择了不适当的开发工具和设计工具而产生的复杂性。对于一个功能确定的程序来讲,本质的复杂性是确定的,而非本质的复杂性则是没有限制的。因此,一个应用的开发要想较顺利地取得成功,就需要尽可能地减少非本质的复杂性。   OOD的特点   面向对象的设计(OOD)将一个程序分解成根据具体的对象而设计的一系列元素。这些具体对象的行为和数据以一种叫做“类(class)”的编程单元进行打包。应用程序创建一个或多个这些类的例示,也称为“对象(object)”。类的行为是通过创建对象之间的关系组合在一起的。   OOD允许开发者用两种主要的方法来控制复杂性的增加。第一,OOD定义严格的出口语义,这允许开发者隐藏实现的细节,并且明确说明什么方法是其它的对象可以访问的。这个信息隐藏使得可以对大部分的代码进行修改而不影响其它的对象。   第二,OOD将对象之间的关系分为四类:继承、包容、使用和协调。适当地使用这些关系可以大大减少应用开发过程中本质的和非本质的复杂性。如,继承是产生面向对象设计中可再使用的主要因素。这个再使用性是通过代码共享和多态性获得的。这种再使用可以大大减少应用的本质的复杂性。包容允许一个类的用户在使用包容器时忽略被包容的类(class)。这个简化使设计者能够大大减少应用的非本质的复杂性。   可视化接口在OOD方面的不足   许多程序都需要可视化接口,这些接口由对话框、选单、工具条等组成。这些可视化接口的增加会引进OOD设计的不足,使得一个好的面向对象的设计走向反面。可视化接口有三个属性可能会给应用开发带来麻烦。   第一,可视化接口提高了传统的面向操作的拓扑结构。用户产生接口事件,如开关按键和列表框选择等,受到程序的一个模块的驱动并且用来对静态的数据进行操作。在设计中将这面向操作的拓扑结构同一个面向对象的设计混合在一起将导致对象之间的大量的杂合。   第二,用户接口通常对于同样的信息经常会需要许多不同的显示。如,一个客户选择列表框可以包含一个客户的名字和电话号码以及许多其它客户的名字。   当用户选择某个特定的客户后,他/她的名字和电话号码及其它全部相关的信息都会详细地显示出来。   除此之外,一个简单的程序可能具有不同的用户接口。如一个银行账户系统有一个接口用于出纳员来访问账户平衡、存款和取款,而监督者的接口则包含另外的信息并加上账号管理的功能。这些不同的接口很容易导致类的扩展。   最后,可视化接口在整个设计阶段还会进行较大的改变。这些改变包括完全重新安排用户与系统的交互操作等。可视化接口的这些改变即使在最好的设计中也会增加应用开发的复杂性。   MVC弥补可视化接口/OOD的不足   模型/界面/控制器(Model/View/Controller,MVC)编程技术允许一个开发者将一个可视化接口连接到一个面向对象的设计中,而同时还可以避免我们上面讨论的几个问题。MVC最初是为Smalltalk语言而设计的。MVC通过创建下面三个层将面向对象的设计与可视化接口分开:   模型(Model):模型包含完成任务所需要的所有的行为和数据。模型一般由许多类组成并且使用面向对象的技术来创建满足五个设计目标的程序。   界面(View):一个界面就是一个程序的可视化元素,如对话框、选单、工具条等。界面显示从模型中提供的数据,它并不控制数据或提供除显示外的其它行为。一个单一的程序或模型一般有两种界面行为。   控制器(Controller):控制器将模型映射到界面中。控制器处理用户的输入,每个界面有一个控制器。它是一个接收用户输入、创建或修改适当的模型对象并且将修改在界面中体现出来的状态机。控制器在需要时还负责创建其它的界面和控制器。   控制器一直决定哪些界面和模型组件应该在某个给定的时刻是活动的,它一直负责接收和处理用户的输入,来自用户输入的任何变化都被从控制器送到模型。   界面从模型内的对象中显示数据。这些对象的改变可以通过也可以不通过用户的交互操作来完成。如:在一个Web浏览器中负责接收页面的对象收集和装配栈中的信息,必须有某种方式来让这些对象通知界面数据已经被改变了。在模型变化时有两种方法来对界面进行更新。   在第一种方法中,界面可以告诉模型它正在监视哪些对象。当这些对象中有任何一个发生变化时,一个信息就被发送给界面。界面接收这些信息并且相应地进行更新。为了避免我们上面讨论的不足,模型必须能够不用修改就支持许多种不同的界面显示。   第二个方法并不直接将界面连接到模型中,它的控制器负责在模型变化时更新界面。控制器通过对模型对象或观察器方法进行监测来检测模型中的变化。这个方法不用了解界面的模型知识,因此界面就变成是可以跨应用使用的。   使用MVC的优点   MVC通过以下三种方式消除与用户接口和面向对象的设计有关的绝大部分困难:   第一,控制器通过一个状态机跟踪和处理面向操作的用户事件。这允许控制器在必要时创建和破坏来自模型的对象,并且将面向操作的拓扑结构与面向对象的设计隔离开来。这个隔离有助于防止面向对象的设计走向反面。   第二,MVC将用户接口与面向对象的模型分开。这允许同样的模型不用修改就可使用许多不同的界面显示方式。除此之外,如果模型更新由控制器完成,那么界面就可以跨应用再使用。   最后,MVC允许应用的用户接口进行大的变化而不影响模型。每个用户接口的变化将只需要对控制器进行修改,但是既然控制器包含很少的实际行为,它是很容易修改的。   面向对象的设计人员在将一个可视化接口添加到一个面向对象的设计中时必须非常小心,因为可视化接口的面向操作的拓扑结构可以大大增加设计的复杂性。   MVC设计允许一个开发者将一个好的面向对象的设计与用户接口隔离开来,允许在同样的模型中容易地使用多个接口,并且允许在实现阶段对接口作大的修改而不需要对相应的模型进行修改。
mvc 框架的理解 mvc原称 model-view-controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。 MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面... 阅读详情

相关推荐

MVC框架知识详解

MVC框架知识详解

不迁怒,不贰过。小知识,大智慧。 3118

SpringMVC一个类处理多个业务以及注意事项

连接:HelloSpringMVC 在上一篇中,通过网址发送请求转发到test.jsp页面,${msg}中的信息存放在request域中。 SpringMVC在进行视图跳转的时候是可以转发到html页面的,但是需要在springmvc.xml文件中设置:<mvc:default-servlet-handler/>,但是html页面不支持EL表达式,无法获取到后端携带的数据,如果想要获取数据,就使用模板引擎+html。 在以上的写法中,一个controller只能做一件事,需要配置多个bean,显

Mu木 276

LiveGBS流媒体平台GB/T28181实战指南:海康NVR物联网卡摄像头注册失败全链路排查与抓包技巧

本文详细解析了LiveGBS流媒体平台中海康NVR物联网卡摄像头注册失败的常见问题及解决方案。通过全链路排查与抓包技巧,包括物联网卡配置、多网卡冲突处理、防火墙设置等,帮助用户快速定位并解决GB/T28181协议下的设备注册难题,提升流媒体平台部署效率。

weixin_29290947的博客 495

什么是mvc设计模式 (附代码示例)

什么是mvc设计模式,举一个mvc设计模式的例子。 答:mvc设计模式是用模型/试图/控制器三元组用来构建用户界面。一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 例子:存在三种对象:学生,教师,管理员;分别能实现登录,教师能实现注册;教师能对学生进行

Detective_的博客 8676

移相全桥模拟控制电路

模拟电路移相全桥

nizhenyuchina的博客 1111

Spring Boot日志可视化实战:5分钟搞定Promtail采集与Grafana查询(避坑指南)

本文详细介绍了如何通过Promtail和Grafana实现Spring Boot日志的可视化查询,提供从日志采集到高效查询的全流程实战指南,重点解决部署中的常见问题。内容包括Logback配置、Promtail日志采集、Grafana的LogQL查询技巧及生产环境优化建议,帮助开发者快速定位和解决日志问题。

weixin_42526015的博客 107

mvc优点和缺点

优点 耦合性低 视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。 模型是自包含的,并且与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。如果把数据库从MySQL移植到Oracle,或者改变基于RDB...

XU13915421641的博客 1288

【MATLAB】嵌入式PID控制参数整定与优化

本文提出了一种基于MATLAB仿真的嵌入式PID参数优化方法,解决了传统人工试凑法效率低、适应性差的问题。通过建立一阶滞后被控对象模型,对比分析了不同PID参数组合的性能表现,筛选出最优参数。仿真结果表明,优化后的PID参数能有效降低超调量(从传统方法的显著超调降至接近0%),缩短调节时间,提高稳态精度。最终将优化算法部署到STM32平台,实现了"仿真整定-参数优化-嵌入式落地"的完整开发流程。该方法显著提升了嵌入式系统的响应速度和控制精度,为工业控制应用提供了标准化解决方案。

unber的博客 46

浅谈MVC架构—你到底有什么本事

MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理。然后模型根据用户请求进行相应的业务逻辑处理,并返回数据。最后控制器调用相应的视图格式化模型返回的数据,并通过视图呈现给用户。 通过MVC的学习,我们要知道它是用来分割页面和数据库访问的框架,降低了两者的耦合度,同时通过Controller的控制,也使系统更加的灵活,使我们的代码更健壮,复用性更强,但是凡事都有他适用的范围,我们不能觉得它好,就不敢三七二十一的瞎用,有时可能会适得其反,因此MVC的学习还需要我们以后慢慢探讨

追梦 7万+

黑猫带你学UFS协议第12篇:UFS标志(Flags)和属性(Atrributes)详解

UFS中的标志其实就是一些开关,布尔型,非0即1,打开或者关闭。这些标志可以用来使能或者禁止UFS设备的一些功能、模式或者状态。 简单来说,flag和attribute、discriptor一样,都是ufs的寄存器罢了。只不过spec将这些寄存器分类了,分成这三种大的类型了而已。 标志可以被清除、复位、设置、触发、读。 主机也是通过设备管理器的Query Request UPIU来读取或者写标志。

黑猫奥利奥的博客 2085

SAP GUI 经典事务在 Fiori Launchpad 中的穿越之道:原理、配置与实践指南

在许多企业的 S/4HANA 或 ECC 系统里,经典 SAP GUI 事务依旧承载着关键业务。如何把这些老将自然地嵌入到 Fiori Launchpad,让用户在统一入口里无缝切换新旧 UI,是项目中经常遇到的主题。本文结合社区博文、官方文档与实际项目经验,系统梳理这一过程的技术原理、配置步骤、性能优化以及常见坑点,并给出贴近中国读者的案例解析与改进建议。阅读完毕,你将不仅知道怎么做,还会理解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 623

使用基于 SpringMVC 的透明 RPC 开发微服务

来源:fredal.xin/develop-with-transparent-rpc我司目前 RPC 框架是基于 Java Rest 的方式开发的,形式上可以参考 SpringCloud...

JAVA葵花宝典 615

药物对接仿真软件:HADDOCK_(9).结果分析方法

HADDOCK是一种强大的药物对接仿真工具,通过对生成的输出文件进行详细的分析,我们可以验证仿真结果的可靠性,并为进一步优化药物设计提供依据。常见的分析方法包括解读输出文件、使用可视化工具进行结构分析、评估对接模型的稳定性和准确性等。通过这些步骤,我们可以更全面地了解受体和配体的结合模式,从而提高药物设计的成功率。

kkchenjj的博客 1009

Spring模块组成

一,什么是Spring,使用Spring框架的好处 曾经Spring学习笔记中提到了Spring用来管理项目中所有的对象,是容器。这里详细介绍一下。 1、Spring是一个轻量级的开源框架,是为解决企业应用开发的复杂性而创建的;它是一个容器,用来装java对象,中间层框架起一个连接作用; 2、Spring是一个三层架构: Web层----SpringMvc 业务层----Spring的IOC思想 持久层-----SpringJDBC,ORM等等 二、Spring由哪些模块组成 关于Spring组成的模块,可

m0_54852350的博客 370

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

spring-概述-速览

spring spring是javaEE开源的轻量级别的框架,可以解决企业开发中遇到的难题,能够让编程变得简单,核心组件IOC容器和AOP面向切面编程 IOC控制反转:把整个对象创建的过程,统一交给我们的SpringIOC容器进行管理来实现管理,底层使用反射+工厂模式 Aop面向切面编程:对我们功能(方法)前后实现增强,比如打印日志,事务原理,权限管理,底层是基于动态代理模式实现的 减少到我们代码冗余的问题 优势: 方法的解耦,简化开发 AOp技术支持 提供声明事务支持 Junit单元测试 方

qq_44236958的博客 224

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MVC模式详解

MVC模式是一种广泛使用的设计模式,通过将应用程序分为模型、视图和控制器三部分,实现了关注点分离,提高了代码的可维护性和可扩展性。尽管引入MVC模式可能增加系统的复杂性,但对于中大型应用程序来说,其优点远远超过缺点。在实际应用中,MVC模式可以与其他设计模式结合使用,以实现更复杂和灵活的系统架构。

qq_47012987的博客 2687

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

什么是MVC

主要讲述了有关于MVC的概念以及应用

weixin_61880433的博客 4018

MVC模式总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代.

m0_51960101的博客 881

Java的MVC设计模式,带你深刻理解MVC

由上我们总结一下MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。MVC一个很有用的好处就是,能为你的应用程序处理很多不同的视图,然而在视图中却没有真正的处理发生。①使用MVC最重要的原因就是,多个视图可以共享一个模型,由于你已经将数据和业务规则分开来,能最大程度减少代码的冗余度,最大化的冲用你的代码,这样,在后期的维护阶段,也能减轻很多压力。3.使用MVC的原因。

bjmsb79的博客 1758

Spring-MVC的优缺点

优点 封装代码,维护成本低,耦合性低 在MVC模式中,三个层各施其职,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。 有利于开发中的分工,提高开发效率 在MVC模式中,由于按层把系统分开,那么就能更好的实现开发中的分工。网页设计人员可以进行开发视图层中的JSP,对业务熟悉的开发人员可开发业务层,而其它开发人员可开发控制层。 组件重用,有利于代...

bbj1030的博客 1万+

对mvc模式的理解

对mvc的理解: mvc一般可以分为两种,mvc1(主动)、mvc2(被动) mvc1中经常会用到有“客户端”的项目中开发, mvc2中是用在web中的形式, mvc2比mvc1解耦更加的彻底,更加的实用,只不过controller的功能更加的复杂。mvc设计模式的特点: 优点: 1、提高了代码的重用性,(代码不需要写成多个版本) eg:网页版本和客户端版本的会有所不同,vie

bruscar的专栏 3615
上一篇: BEA下载区
下一篇: Microsoft敢不让我学JAVA???
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值