1、 MVC的优点

  (1) 可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。

  (2) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。

  (3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。

  (4) 潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。

2、 MVC的不足之处

  (1) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

  (2) 视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

  (3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。

  (4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。

优点:

1)视图控制模型分离, 提高代码重用性。

2)提高开发效率。

3)便于后期维护, 降低维护成本。

4)方便多开发人员间的分工。

缺点:

1)清晰的构架以代码的复杂性为代价, 对小项目优可能反而降低开发效率。

2)运行效率相对较低

3)目前没有比较好的rich 客户端的解决方案

4) 控制层和表现层有时会过于紧密,导致没有真正分离和重用

转载于:https://www.cnblogs.com/xiaohaoweiye/p/3708925.html

MVC的优点及不足之处相关推荐

  1. 【MySQL】三大范式(设计理念、优点、不足之处)

      刷完基础视频,对数据库设计范式有了一些了解,也经过了实际动手设计数据库有一些感悟.三大范式,还是只能说出大概,今天就把这个点搞通透. 本文目录 1.为什么需要范式 2.什么是范式 第一范式 第二范 ...

  2. ASP.NET下MVC设计模式的实现

    1 MVC设计模式简介 MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础.MVC结构是为那些需要为同样的数据提供多个视图的应用程 ...

  3. [ZZ]MVC设计模式

    1 前言 用户界面,特别是图形用户界面,承担着向用户显示问题模型和与用户进行操作和I/O交互的作用.用户希望保持交互操作界面的相对稳定,但更希 望根据需要改变和调整显示的内容和形式.例如,要求支持不同 ...

  4. 模式-视图-控制器模式2.0

    1 MVC的实现  1.1 分析应用问题,对系统进行分离 分析应用问题,分离出系统的内核功能.对功能的控制输入.系统的输出行为三大部分.设计模型部件使其封装内核数据和计算功能,提供访问显示数据的操作, ...

  5. 计算机专业术语简单释义

    计算机专业术语简单释义 先简单声明两个基本概念 客户端 :是为客户提供本地服务的程序,最常见的有我们电脑上的浏览器 服务器 :就是指运行着服务软件的高性能计算机或计算机系统,用以存储数据,为客户提供信 ...

  6. mvc原理和mvc模式的优缺点

    mvc原理和mvc模式的优缺点 一.mvc原理    mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离.提高了程序的可维护性.可移植性.可扩展性与可重用性,降低了程序的开发难度.它主要分 ...

  7. MVC 模式及其优缺点

    一.MVC 原理 MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离.提高了程序的可维 护性.可移植性.可扩展性与可重用性,降低了程序的开发难度.它主要分模型.视图.控制器三层. 1.模 ...

  8. MVC 之 架构的基本原理及Asp.Net实现MVC

    一.引言 许多Web应用都是从数据存储中检索数据并将其显示给用户.在用户更改数据之后,系统再将更新内容存储到数据存储中.因为关键的信息流发生在数据存储和用户界面之间,所以很多应用将数据和用户界面这两部 ...

  9. java mvc框架代码_JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码)

    原标题:JAVA技术学习笔记:SpringMVC框架(内附入门程序开发代码) JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的 ...

  10. spring mvc 总结

    为什么80%的码农都做不了架构师?>>>    一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 ...

最新文章

  1. 四连通,和八连通的详解(MATLAB)
  2. 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
  3. 感谢武汉晚报的采访报道:清华硕士回襄阳老家当“威客” 两年赚30万元
  4. Larbin使用方法2
  5. 欧拉函数的一道练习题(附加容斥做法)
  6. /etc/shadow 文件详解
  7. HashMap30连问,彻底搞懂HashMap
  8. ASP.NET Core 2.1基于SignalR和Vue实时通讯
  9. SpringBoot - 静态资源映射处理
  10. 二维凸包(模板) hdu 1348 求凸包的周长
  11. 游戏筑基开发之环形链表及其基本功能(C语言)
  12. windows2003中使用命令行添加IP筛选器规则
  13. 计算机崩溃用英语怎么说,“我要崩溃了”英语怎么说?
  14. 最大功率点跟踪测试软件,最大功率点跟踪方法及系统
  15. 阳光温暖了心情的博客
  16. SQL server课程设计-景点门票销售管理系统(基于Javagui制作)
  17. 拱火AI大战全球最强法务部,艺术家为抵制AI画画出新招
  18. OpenCV配置(利用Source编译,并配置扩展库opencv_contrib)
  19. 微信中那种卡片形式的图文链接是如何制作的
  20. 五种常见的计算机高级语言,[转]计算机语言的种类总结

热门文章

  1. Wondershare Recoverit for Mac(数据恢复套件)
  2. 百度面试题:Median of Two Sorted Arrays(java实现)
  3. 《长城保护总体规划》出台 为长城保护提供遵循依据
  4. Xshell设置密钥登录CentOS6.5_64位(图文版)
  5. 【WPF】在MenuItem中下划线“_”显示不正常
  6. Linux多线程同步之相互排斥量和条件变量
  7. Zendframework 模块加载事件触发顺序。
  8. 第十二次课:Servlet实现用户管理
  9. 从代码书写理解指针,很重要
  10. GET 和 POST请求的本质区别是什么?看完觉得自己太无知了...