`
- 浏览:
22527 次
- 性别:
- 来自:
江苏泰州
-
MVC是一个架构,或者说是一个设计模式,它就是强制性使应用程序的输入,处理和输出分开。将一个应用程序分为三个部分:Model,View,Controller。
具体的话就是:
视图
视图就是负责跟用户交互的界面。一般就是由HTML,css元素组成的界面,当然现在还有一些像js,ajax,flex一些也都属于视图层。 在视图层里没有真正的处理发生,之负责数据输出,并允许用户操纵的方式。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。
模型
Model代表一些应用数据和业务逻辑(一般通过通过javaBean,EJB之间实现)在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和javabean这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后用确定用哪个视图来显示模型处理返回的数据。
这样强制性的分开之后会有很多的好处,
第一个:分工明确:使用MVC可以把数据库开发,程序业务逻辑开发,页面开发分开,每一层都具有相同的特征,方便以后的代码维护。它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。
第二个:就是松耦合,视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
这一点我感觉比较重要,像实际应用的时候,我们还会把model模块细分为:数据库抽象层,数据操作层,业务逻辑层。这些也都是出于一个送耦合的考虑,改动其中一部分,不会影响到另一部分。
第三个:重用性高。像多个视图能够共享一个模型,不论你视图层是用flash界面或是wap界面,用一个模型就能处理他们。将数据和业务规则从表示层分开,就可以最大化从用代码。
用简单的jsp servlet 和javabean来举个注册的例子来说的话:首先是视图层注册的jsp文件,用户填写完用户信息后,提交一个请求,这个请求同过配置文件找到相应的servlet,servlet就相当于控制器,根据不同的用户请求类型,进而调用不用的业务逻辑层进行处理。处理完成之后又将结构信息反馈给jsp文件也就是视图层文件。最最简单的mvc大体上就是这个流程了。
不过MVC也有一定的缺点
MVC的缺点是由于它没有明确的定义,所以完全理解MVC并不是很容易。使用MVC需要精心的计划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。
你将不得不花费相当可观的时间去考虑如何将MVC运用到你的应用程序,同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构件经过了测试,你就可以毫无顾忌的重用它们了。
根据开发者经验,由于开发者将一个应用程序分成了三个部件,所以使用MVC同时也意味着你将要管理比以前更多的文件,这一点是显而易见的。这样好像我们的工作量增加了,但是请记住这比起它所能带给我们的好处是不值一提。
MVC并不适合小型甚至中等规模的应用程序,花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失。
总之,不要为了MVC而MVC就行了。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
本文将深入探讨在Java面试中经常出现的一些核心知识点,包括JDBC、J2EE、MVC设计模式、Servlet、XML、线程以及面试技巧。 首先,JDBC(Java Database Connectivity)是Java与数据库交互的标准接口。它允许Java应用...
单例模式、MVC、工厂模式、抽象工厂模式、代理模式详解
│ Java面试题23.mvc模式和mvc各部分的实现.mp4 │ Java面试题24.数据库分类和常用数据库.mp4 │ Java面试题25.关系型数据库的三范式.mp4 │ Java面试题26.事务的四大特征.mp4 │ Java面试题27.mysql数据库最大连接...
这份"2024 Java面试宝典合集"无疑是准备Java求职面试者的宝贵资源。它涵盖了多个关键领域,包括Spring框架、并发编程、Java核心知识以及面试策略等。下面我们将详细探讨这些知识点。 1. **Spring Boot面试题**:...
Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环境 Java面试题04.java中int占几个字节 Java面试题05.java面向对象的特征 ...Java面试题23.mvc模式和mvc各部分的实现
Java面试宝典2017版是一份集大成的面试资源,专为准备Java相关职位面试的求职者量身打造。这份文档旨在帮助求职者系统性地复习和掌握Java编程语言的关键知识点,以应对各类面试挑战。以下将对这份资料中的主要知识点...
《JAVA面试宝典》是一本全面涵盖Java技术体系和求职面试知识的指南,旨在帮助Java开发者准备面试,提升技能。本书共分为十章,从基础知识到框架应用,再到项目实战和面试题解析,覆盖了Java开发者的必备技能。 第一...
本文总结了常见的JAVA面试问题,涵盖了JAVA基础、JSP、Servlet、XML、J2EE、MVC、数据库等方面的知识点。 一、JAVA基础部分 * 抽象类和接口的区别 * 作用域public、private、protected的区别 * 重写和重载的区别 *...
在准备Java面试时,了解和掌握一系列核心知识点是至关重要的。以下是一些基于标题和描述中的关键领域,如MyBatis、Spring、Redis、多线程、网络编程以及面试题库的重要知识点: 1. **Java基础**:Java是面试的基础...
本文总结了Java面试题及答案,涵盖了Java基础、容器、多线程、反射、对象拷贝、JavaWeb、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/SpringCloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、...
以上是对“JAVA面试题2019”中提及的一些核心知识点的总结,涵盖了项目介绍、Java基础知识、并发编程、Spring框架、Netty框架以及分布式系统等方面的知识点。这些知识点不仅对于准备Java面试至关重要,同时也是Java...
在Java面试中,Eclipse和MyEclipse的使用技巧、Struts和Spring的配置与实践、以及MVC模式的理解是常见的考察点。面试者需要熟悉Eclipse的工作空间设置、快捷键、插件安装等,理解Struts的Action和ActionForm机制,...
这份PDF文件包含了122道精心挑选的Java面试题目,旨在全面覆盖Java编程语言的核心概念、框架、设计模式以及最佳实践。以下是对这份宝典中可能涵盖的知识点的详细解析: 1. **Java基础**:这部分可能会涉及Java的...
Java 面试中遇到的问题 Java 面试中常设计到的问题,以下是对标题和描述中所说的知识点的详细说明: Core Java * 线程:Java 中的线程是通过 Thread 类或 Runnable 接口来实现的。线程的生命周期包括新建、就绪、...
在Java面试中,面试官通常会考察候选人的基础知识、编程能力、设计模式理解、并发处理、内存管理以及对JVM(Java虚拟机)的了解。香港的JAVA程序员面试笔试题目可能涵盖以下几个关键领域: 1. **基础语法**:面试...
【Java面试大全】是针对Java开发者的一份全面的面试准备指南,主要涵盖了Java SE的基础知识、面向对象特性、语法细节以及一些高级主题。这份资料在原有的面试题库基础上进行了精心筛选和更新,删除了过时或无用的...
本文档概括了Java面试题的知识点,涵盖了Java基础知识、JSP&Servlet技术、J2EE相关知识、Web安全性、MVC、XML、structs、Session Bean、EJB、Java多线程、文件加密技术、软件开发生命周期、路由协议、Java AWT和...
8. **数据库交互**:虽然Java面试不一定涉及数据库,但JDBC(Java Database Connectivity)和SQL的基本知识是必要的,包括连接数据库、执行查询、处理结果集等。 9. **网络编程**:Java的Socket编程用于实现客户端/...
本资源集合提供了一系列的Java面试题集,旨在帮助求职者充分准备,提高成功获得职位的机会。 《JAVA综合面试题》可能涵盖了Java的基础知识、进阶特性以及实际应用等多个方面。这通常包括但不限于: 1. **Java基础*...
Java面试题23.mvc模式和mvc各部分的实现 Java面试题24.数据库分类和常用数据库 Java面试题25.关系型数据库的三范式 Java面试题26.事务的四大特征 Java面试题27.mysql数据库最大连接数 Java面试题28.mysql和oracle的...