MVC的起源和理解

MVC的起源和历史

我们很多人都会在网址上看到各种mvc或者mvp相关文章,有的写的很详细、有的写的则很绕口,这里我自己也分享一份自己的心得!

这里写图片描述

一、MVC起源

MVC:全称:Model - View - Controller,它是于1970年的时候有TrygveReenskaug在Smalltalk-80系统上首次提出。起初并不是MVC,而是MVCE,也就是Model - View - Controller后面多了一个Editor。但是当时提出MVC的理念和现在的理念大致是一样的。都是为了讲数据模型和视图层分离开来。

其实MVC是一种框架模式,而非设计模式,GOF把MVC看做是3中设计模式:《观察者模式》、《策略模式》,《组合模式》三者的合体。其核心是《观察者模式》。


二、框架模式和设计模式两者的区分?

1、我们很多时候都会把所以的模式都称呼为设计模式,其实这样的称呼是错误的。比如注解模式、通讯框架、数据储存框架等通用性很强的框架,还有一些面向后端开发的,如Struts、Spring等框架,在这些框架中我们会见到很多设计模式的应用。对于框架而言,就是对代码的重用对于设计而言,则是会设计的重用

对于框架而言,我们可以理解为框架面向一系列相同行为的代码的重用!

对于设计而言,我们可以理解为面向一系列相同结构代码的重用

2、在软件开发领域中3中级别的重用

内部重用:一个应用中能公共使用的抽象类

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

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


三、MVC的优缺点

优点:其实mvc的优点很多,第一个就是理解起来很简单,技术含量不高,这样开发和维护成本比较低,方便与后期维护和修改,其次就是耦合度不高,表现层和业务层是分开的,对开发来说很有利,前端开发注重界面的研发,后端开发注重业务逻辑的梳理。

缺点:它没有明确的定义,所以理解起来MVC模式比较复杂,使用起来也需要精心设计。开发一个MVC模式架构的工程,将不得不花费相当客观的时间去考虑如何将MVC运用到项目中。由于Model和View要严格分离,这样给调试应用程序带来一定的困难。另外,由于MVC模式将一个应用分成三个部件,所以,这意味着同一个工程将包含比以前更多的的文件。对于小项目而言,MVC反而是一种拖累。在实际开发中要妥善使用。


四、MVC在Android中的实现

  • 1、Android中对MVC的应用很经典,因为对android本身来说,其xml界面部分就涉及了模型 - 试图 - 控制器3者的交互。在Android中,视图层View采用xml文件形式对几面进行显示和描述。例如:
<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:id="@+id/list_item_text"
    android:textSize="16sp"
    android:gravity="left|center_vertical"
    android:padding="10dp" />
  • 2、对于模型Model部分则大多应用于本地的数据未见或者网络获取的数据体,很多情况我们对这些数据的处理也会在这一层中进行。最后的控制器Controller部分则当之无愧由Activity来承担。(下面代码就是我们的Model层MainActivity,但是我们要继承Activity。其Activity就相当于我们View和MainActivity的控制器)

这里写图片描述


五、MVC总结

  • 在Android UI系统中,控制器Activity主要起到作用就是解耦,将试图View和模型Model进行分离,两者在Activity中进行绑定或完成其他逻辑。总体来说MVC比较适合较大的项目。其实我们平时开发中,特别是Android,我们并不常用MVC模式去脱离Android UI系统构建自己的框架结构
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值