美文网首页
安卓框架-MVC的学习

安卓框架-MVC的学习

作者: 雷根儿 | 来源:发表于2020-03-11 13:37 被阅读0次

    一 摘要

    在深入探究MVC设计模式之前,首先要弄清这样几个问题

    1. 什么是MVC设计模
    2. 为什么要使用MVC设计模
    3. MVC设计模存在的问题
    4. 什么是耦合性
    5. 如何去解耦

    针对这些问题,我们来一一分析,解释.

    1.什么是MVC设计模

    MVC.jpg

    首先我们来介绍一下MVC设计模式的整个架构图:

    • MVC-----Model-View-Controller
    • M:Model 模型
    • V: View 视图
    • C: Controller 控制器
    1. model:模型负责各个功能的实现(如登录、增加、删除功能)。模型用JavaBean实现。


      JavaBean.png
    2. View:负责页面的显示;与用户的交互。包含各种表单。 实现视图用到的技术有html/css/jsp/js等前端技术。
    3. Controller:控制器负责将视图与模型一一对应起来。相当于一个模型分发器。所谓分发就是:①接收请求,并将该请求跳转(转发,重定向)到模型进行处理。②模型处理完毕后,再通过控制器,返回给视图中的请求处。
    4. Model-View-Controller是一个用来组织代码的权威范式。Apple甚至是这么说的。在MVC下,所有的对象被归类为一个model,一个view,或一个controller。Model持有数据,View显示与用户交互的界面,而view controller调解model和view之间的交互。

    2.为什么要使用MVC设计模

    主要有两个方面原因:

    1. 一种比较常用的设计模式,能够做到各层专注于各自的功能,易于扩展、管理等。
    2. MVC使前后台相互分离,双方通过控制器来进行控制,且相互之间不影响。这样在编程的时候,前台可以安心做前台,后台可以专注于功能。且修改的时候非常容易。

    3.MVC设计模存在的问题

    1. 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
    2. 视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
    3. 视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
    4. 耦合性度比较高,目前,一般高级的界面工具或构造器不支持模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC使用的困难。

    4.什么是耦合性

    • 耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。

    • 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

    • 降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。

    5.如何去解耦

    1. 尽可能保持模块功能的独立性
    2. 引入更好的框架,例如MVP、MVVM设计框架
    3. 尽可能细化职责划分,这样也可以做到解耦

    参考:

    相关文章

      网友评论

          本文标题:安卓框架-MVC的学习

          本文链接:https://www.haomeiwen.com/subject/mblqjhtx.html