13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

不必纠结MVC还是MVP了,听我说两句~

MVC全称是Model-View-Controller 也就是模型–视图–控制器,是在1970年的时候提出由TrygveReenskaug在Smalltalk-80系统上***提出的。

成都创新互联公司制作网站网页找三站合一网站制作公司,专注于网页设计,成都做网站、网站制作,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为上千家服务,成都创新互联公司网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!

SmallTalk在百度百科的解释是这样:

Smalltalk被公认为历史上第二个面向对象的程序设计语言和***个真正的集成开发环境 (IDE)。

来张图说明一下MVC的工作模式吧!

图中红色小框框就是MVC的工作模式

MVC是一种框架模式而非设计模式

其优点是:

其缺点是:

MVC的Android伪代码实现

以下图片中代码与数据不匹配,只是为了方便理解MVC在代码中如何写,需要看实例的可以去网上了解,我在这里就偷懒了:)

 

也就是数据,可以是数据库中的内容,也可以是在代码中写的List集合。   

通过在Controller中对用户在View中传递过来的操作,进行访问model中的数据,然后改变View中的状态。  

MVP是MVC的一个演化版本,全称是Model-View-Presenter。

MVP的出现主要就是解决MVC中的View和Model的耦合性高的的问题,同时又带来了很好的扩展性。

MVP模式的三个角色的作用:

主演沟通View和Model的桥梁,他从Model获取数据后返回给View层,是的View层和Model层之间没有耦合,从而奖业务逻辑从View层抽离。

Model主要提供数据的存取功能,Presenter需要通过Model层存储、获取数据,Model层就像是一个仓库。

View通常是指Activity、Fragment或者某个View控件。它含有一个Presenter成员变量,同时它需要实现一个逻辑接口,奖View上的操作转交割Presenter进行实现,***Presenter调用View逻辑接口将结果返回给View元素。

来张图说明一下MVP的工作模式吧 

  

从图中我们可以看出MVP和MVC之间的额***区别:

MVP的Android伪代码实现

以下图片中代码与数据不匹配,只是为了方便理解MVC在代码中如何写,需要看实例的可以去网上了解,我在这里就偷懒了:)

 

    

 

为什么说不必纠结是MVC还是MVP呢?

MVC和MVP的最终目的就是要数据和UI分离,互相不影响。那么如何能不必纠结而做到呢??你听说过面向对象吗?听过再听听我的理解~

封装、多态,继承。老师好像也都是这么教的,那么到底说明是多态封装继承呢?

封装就是将用户不想看到的东西封装起来,可以用到面向对象中的 Private。

属性,将用户不想看到的内容写在这里面。比如收音机上的播放功能,用户不用知道收音机如何播放,它只需要知道摁下这个键能播放即可。

多态就是一个对象的多种表现形态,主要表现为:行为多态和状态多态。

行为多态就好比一个父亲有多个孩子,每个孩子都不一样,但是都是同一个父亲;状态多态就好比每个孩子在一天中有好多个状态变现,有吃饭,学习,睡觉。

我的一个朋友告诉我继承其实是对面向对象的***误解。继承我们可以理解成一个对象他有多个小对象组成;比如人这个对象是由手脚,脑袋…等其它小对象组成。因此继承我们可以不去记住,我们只要对每个对象有深刻的认识即可把对象描述清楚!

那么MVC、MVP与面向对象有什么关系呢??

首先MVC和MVP都是要求数据和UI之间互不影响,那么面向对象不就是吗!?

对象也就是我们说的用户也就是MC或者MVP中View,用户需要什么我们就展示给其什么,不需要的我们将其封装起来提供一个方法给你调用即可,这是不是和MVC或者MVP中很像!

同时面向对象也是需要将对象的行为细分,比如人可以跑,可以游泳…这是不是和MVC中的Model一样,需要处理用户不同的操作。

***面向对象也是需要一个状态去控制的,比如人的大脑。通过大脑去协调手和脚的平衡。


名称栏目:不必纠结MVC还是MVP了,听我说两句~
文章链接:http://cdbrznjsb.com/article/ccoisci.html

其他资讯

让你的专属顾问为你服务