• 什么是MVC框架?


    1、什么是mvc

    Model View Controller,是模型-视图-控制器的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里,在改进和个性化定制界面的及用户交互的时候,不需要重新编写业务逻辑。mvc用于映射传统的输入、处理、输出功能在一个逻辑的图形用户界面的结构中。

    mvc就是类似三层的一种架构,主要采用封装(分层)的思想,来降低耦合度,从而使我们的系统更灵活,扩展性更好。

    model是应用程序中用于处理数据逻辑的部分。通常模型对象负责在数据库中存取数据。

    view是应用程序中处理数据显示的部分。通常视图是依据数据模型创建的。

    controller是应用程序中处理数据交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送。

    2、mvc的优点

    (1)多个视图共享一个模型,大大提高代码的可重用性。

    (2)三个模块相互独立,改变其中一个不会影响其他两,所以依据这种设计模式能构建良好的松耦合性的组件。

    (3)控制器提高了应用程序的灵活性和可控制性。控制器可以用来连接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提高强有力的手段。

    3、mvc的缺点

    (1)增加了系统结构和实现的复杂性。

    对于简单页面,严格遵循mvc,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。

    (2)视图与控制器过于紧密的连接。

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

    (3)视图对模型数据的低效率访问。

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

    (4)目前,一些高级的界面工具或构造器不支持mvc。

      改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。

     综上,对于开发存在大量用户界面,并且业务逻辑复杂的大型应用程序,MVC将会使你的软件在健壮性、代码重用和结构方面上一个新的台阶。尽管在最初构建MVC框架时会花费一定的工作量,但从长远角度看,它会大大提高后期软件开发的效率。所以我们在具体适用时,要综合考虑其适用范围,

    4、框架vs设计模式

    (1)框架通常是代码重用,而设计模式是设计重用,

      架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。

      在软件生产中有三种级别的重用:

      内部重用,即在同一应用中能公共使用的抽象块;

      代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;

      应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

    (2)设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象。

      框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示 。

      设计模式是比框架更小的元素。一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。

      可以说,框架是软件,而设计模式是软件的知识。

    (3)简而言之:框架是大智慧,用来对软件设计进行分工; 设计模式是小技巧,对具体问题提出解决方案,以提高代码复用率,降低耦合度。

    5、总结

    通过MVC的学习,我们要知道它是用来分割页面和数据库访问的框架,降低了两者的耦合度,同时通过Controller的控制,也使系统更加的灵活,使我们的代码更健壮,复用性更强,但是凡事都有他适用的范围,我们不能觉得它好,就敢三七二十一的瞎用,有时可能会适得其反,因此MVC的学习还需要我们以后慢慢探讨。

    参考文献:

      http://blog.csdn.net/u010168160/article/details/43150049

  • 相关阅读:
    【Opencv】直方图函数 calchist()
    【Lintcode】070.Binary Tree Level Order Traversal II
    【C++】*p++ = *p不同环境下操作不同
    【Python】String 字符串
    【Python】File IO
    栈和队列
    链表
    printf 的格式
    Linux的基本指令--
    机器人的运动范围
  • 原文地址:https://www.cnblogs.com/cxying93/p/6107776.html
Copyright © 2020-2023  润新知