1) 什么是MVC?

MVC是一种设计思想,根据职责不同将程序中的组件分成以下3个部分。

V(View视图):负责与用户交互。将数据展现,或者是接收数据

M(Model模型):负责业务处理。业务模型,数据模型

C(Controller控制器):负责协同模型和视图工作。视图有请求调用模型处理,模型处理完毕调用视图响应。

2)为什么使用MVC?

MVC是一个非常优秀的设计思想,基于该思想架构程序,可以提高程序的结构灵活性,便于日后维护、扩展和升级。

注意,下面内容助于理解:

1)  一个模型可以被多个视图共享模型只负责输出数据,不关心数据的表现形式,同一仹数据,可以使用多个不同的视图展现给用户。模型只负责处理数据,不关心是谁在调用,可以使用多种不同的界面来调用模型。

2)  方便测试

模型一般使用java 类来开发,在开发完成之后,可以立即测试。如果业务逻辑直接写在servlet

里面,则需要部署在服务器上面才能测试,比较麻烦。

3)  组件复用

控制器可以做成一个通用的模块。

4)  代码好维护,利于分工协作。

按照 mvc 的思想,可以对程序迚行分层,一般划分成表示层(包括 v,c)、业务层(m中的业务逻辑部分)、持久层(m中的数据访问逻辑部分)。下一层的代码发生改变,只要接口不变,不会影响到上一层的代码。

mvc的缺点

1)  采用 mvc 以后,会增加代码量,相应的开发周期以及开发的成本会相应增加。

2)  使用 mvc,需要良好的设计。如果设计不当,会增加开发的难度。

结论

一般来说,如果一个程序需要良好的架构,需要良好的代码的可维护性及可扩展性,需要使用mvc

思想来架构。反之,则不必使用。

谈谈对MVC的理解(View+Model+Controller)相关推荐

  1. (四) View/Model 全解(mvc)

    转自:http://www.cnblogs.com/zhangziqiu/archive/2009/03/18/Aspnet-MVC-4.html 一.摘要 本文讲解在Action中向View传递Mo ...

  2. MVC 各种传值方式 ASP.NET MVC view与controller传值方式

    MVC 各种传值方式 ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["T ...

  3. MVC的全名是Model View Controll

    MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范.它是用一种业务逻辑.数据与界面显示分离的方法 ...

  4. Asp.Net Core 入门(四)—— Model、View、Controller

    和我们学习Asp.Net MVC一样,Asp.Net Core MVC的Model.View.Controller也和我们熟悉的Asp.Net MVC中的相似.不同的是我们在使用Asp.Net Cor ...

  5. Model、View和Controller简介

    Model.View和Controller简介 Model主要是存储或者是处理数据的组件,Model其实是指要处理的业务处理和数据操作代码,如:CRUD(Create/Read/Update/Dele ...

  6. [ASP.NET MVC 小牛之路]10 - Controller 和 Action (2)

    继上一篇文章之后,本文将介绍 Controller 和 Action 的一些较高级特性,包括 Controller Factory.Action Invoker 和异步 Controller 等内容. ...

  7. 谈谈对MVVM的理解

    谈谈对MVVM的理解 什么是MVVM 不管是MVC,MVP,或者MVVM,都是常见的软件架构设计模式(Architectural Pattern),它通过分离关注点来改进代码的组织方式.不同于设计模式 ...

  8. MVC的理解和优缺点的总结

    概念:  MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务数据.逻辑.界面显示分离的方 ...

  9. 【ASP.NET MVC 学习笔记】- 10 Controller和Action(1)

    本文参考:http://www.cnblogs.com/willick/p/3331521.html 1.继承IController接口,示例代码将当前请求的Controller和Action打印到浏 ...

最新文章

  1. python recv
  2. 团队开发个人总结05
  3. Andrew Ng's Deep Learning学习记录
  4. 使用Spring Integration轮询http端点
  5. 3招seo技巧让你把关键词做进百度前三
  6. python在末尾加关闭程序_廖雪峰的Python教程教程-02
  7. excel中画图坐标轴更改数字大小_Excel柱状图看不清?用这3种方法就可以
  8. python和环境变量_python 读取和设置环境变量
  9. 云南昭通暴雨强度公式_全国暴雨强度公式2018
  10. Java 绘制图标(饼状图)JFreeChart快速通过Java创建图表
  11. 网站APP信息以及用户数据泄露排查方案
  12. 轻松拥有自己的站内搜索引擎
  13. 读《有效管理的5大兵法》笔记摘录(一)核心价值观:求实、进取、创新、协同、分享
  14. 利用3000fps把人脸面部抠出来(一)
  15. 各版本 DOTween 下载地址
  16. CTO谈豆瓣网和校内网技术架构变迁
  17. 云服务器搭建GitLab
  18. “广告电商”到底是什么?广告收益模式是否行得通?
  19. 光纤收发器怎么连?光纤收发器连接图解!
  20. 配置NFS服务器和NFS客户端

热门文章

  1. 腾讯自研分布式远程Shuffle服务Firestorm正式开源
  2. Gartner:全行业投入人工智能,计算机视觉占比最高
  3. 通俗的讲,这就是容器CPU隔离的底层实现机制
  4. 6.6折票仅剩3天 | BDTC 2019全日程公布,哪些是你感兴趣的话题?
  5. 一文读懂NoSQL的模式 | 时光机
  6. 2000坐标系高程与85高程转换_【科普】测量人必须知道的几大坐标系
  7. matlab knn实现,Matlab之KNN实现
  8. 1分钟 搭建xxl-job任务调度中心
  9. jboss连接池,断开后自动重连功能
  10. Activiti6 use spring-boot-starter-web meet requestMappingHandlerMapping error