java web mvc-01-Model-View-Controller 概览

打印 上一主题 下一主题

主题 889|帖子 889|积分 2671

拓展阅读

Java Servlet 教程-20-自己手写实现 spring mvc 团体思路
Java Servlet 教程-21-自己手写 spring mvc 简单实现
Spring Web MVC-00-重学 mvc
mvc-01-Model-View-Controller 概览
mvc-02-structs 先容
web mvc-03-JFinal
web mvc-04-Apache Wicket
web mvc-05-JSF JavaServer Faces
web mvc-06-play framework intro
web mvc-07-Vaadin
web mvc-08-Grails
从零手写组件系列

java 从零手写 spring ioc 控制反转
java 从零手写 spring mvc
java 从零手写 jdbc-pool 数据库连接池
java 从零手写 mybatis
java 从零手写 hibernate
java 从零手写 rpc 远程调用
java 从零手写 mq 消息组件
java 从零手写 cache 缓存
java 从零手写 nginx4j
java 从零手写 tomcat
MVC 是什么?

MVC(Model-View-Controller)是一种软件设计模式,旨在将应用程序的内部逻辑分离成三个重要组件,以进步代码的可维护性和可扩展性。
每个组件负责不同的任务,互相之间解耦,使得应用程序更容易明白和修改。
1. 模子(Model):

模子是应用程序的数据和业务逻辑的表示。它负责处理数据的存储、检索、更新以及业务规则的实行。模子不依赖于用户界面或控制流程,而是专注于处理应用程序的数据和业务逻辑。在典型的应用中,模子通常包含数据库访问、文件操作、远程服务调用等。
2. 视图(View):

视图是用户界面的表示,负责呈现模子的数据给用户以及吸取用户的输入。视图通常是被动的,它根据模子的状态自动更新。视图并不直接处理用户输入或应用程序的业务逻辑,而是将这些任务委托给控制器。在 Web 应用中,视图可以是 HTML 页面、CSS 样式表等。
3. 控制器(Controller):

控制器是处理用户输入并相应地更新模子和视图的组件。它充当模子和视图之间的中介,负责和谐用户界面的相应和数据的更新。当用户与应用程序举行交互时,控制器捕获用户输入并调用适当的方法来更新模子或视图。在 Web 应用中,控制器通常是处理 HTTP 请求的组件。
工作流程:


  • 用户输入: 用户与应用程序举行交互,提供输入。
  • 控制器处理: 控制器捕获用户输入,根据输入调用适当的方法。
  • 模子更新: 模子处理业务逻辑,更新数据状态。
  • 视图更新: 视图根据新的模子状态自动更新,将更新后的数据呈现给用户。
  • 用户输出: 用户看到更新后的界面,可以再次提供输入。
这个分层布局使得每个组件都可以独立开辟和测试,同时保持彼此之间的解耦。这种模式使得应用程序更容易扩展和维护,因为修改一个组件不会影响其他组件的功能。
示例:

考虑一个简单的购物车应用:

  • 模子: 负责存储商品信息、盘算总价等。
  • 视图: 负责展示购物车中的商品和总价。
  • 控制器: 负责处理用户的添加商品、删除商品等操作,并更新模子和视图。
  1. User Input -> Controller -> Model (Update) -> View (Update) -> User Output
复制代码
MVC 模式的灵活性和分离关注点的设计使其在各种软件应用中广泛应用,包括桌面应用、Web 应用和移动应用。
为什么必要 mvc?有什么优势?

MVC 架构被广泛采用的缘故原由是它提供了许多优势,使得软件开辟更加模块化、可维护和可扩展。
以下是一些使用 MVC 的优势:

  • 分离关注点(Separation of Concerns): MVC 将应用程序分为三个独立的组件,每个组件负责不同的任务。这种分离简化了代码的明白、维护和扩展,因为开辟职员可以专注于特定方面的开辟,而不必担心整个应用程序的复杂性。
  • 可维护性: 由于模子、视图和控制器分离,对一个组件的修改不会影响其他组件。这使得修改、扩展和维护应用程序变得更加容易,因为不同的部分是相对独立的。
  • 可扩展性: 由于每个组件都是相对独立的,因此可以轻松地添加新的功能或更改现有功能,而不会影响团体的应用程序布局。这使得应用程序更容易适应变化的需求。
  • 可重用性: 每个组件都可以在不同的上下文中重复使用。例如,可以重用相同的模子逻辑在不同的视图中展示数据。这种可重用性低落了代码冗余,进步了开辟效率。
  • 易测试性: 由于模子、视图和控制器是相对独立的,可以更容易地举行单元测试。开辟职员可以专注于测试每个组件的功能,确保其正常工作而不必考虑整个应用的复杂性。
  • 进步团队协作: MVC 提供了清楚的架构和组件划分,有助于多个开辟职员或团队协同工作。每个组件都有特定的职责,因此不同的开辟者可以专注于各自领域,低落了沟通和互助的难度。
  • 支持并行开辟: 由于 MVC 分离了关注点,不同的团队成员可以并行开辟各个组件,而不会相互干扰。这有助于进步开辟速率和团体项目标交付效率。
总体而言,MVC 架构的引入使得软件开辟更加模块化、灵活和可维护,有助于构建健壮、可扩展的应用程序。
java 的 mvc 框架对比

Java 的 MVC 框架有很多,以下是一些常见和盛行的 Java MVC 框架:
框架重要特点和设计理念适用场景Spring MVC- 继承 Spring 框架,强盛的生态体系
- 注解驱动的开辟
- 高度可定制化企业级应用程序,大型项目Struts 2- 继承自 Struts 框架
- 拦截器机制
- 标签库和表单验证Web 应用程序,中小型项目JSF- JavaServer Faces 规范
- 组件化开辟方式
- 夸大可重用组件复杂的用户界面,企业级应用程序Play Framework- 相应式编程
- 简化开辟流程,约定大于配置
- 支持 Scala 语言快速开辟,轻量级 Web 应用,RESTful 服务Vaadin- 用 Java 编写用户界面逻辑
- 服务器端渲染
- 数据绑定和组件化企业级应用程序,必要强盛用户界面的项目Grails- 基于 Groovy 的框架
- 领域特定语言(DSL)
- 使用 Spring MVC快速开辟,Groovy 语言,中小型项目Apache Wicket- 面向对象的编程方式
- 组件化开辟,面向组件编程
- 服务器端渲染复杂的用户界面,面向对象的设计,中小型项目JFinal- 基于 Java 的轻量级框架
- 简单易用,约定大于配置
- ActiveRecord 模式快速开辟,中小型项目
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表