关于 MVC 的定义介绍,摘一段百度百科介绍:
MVC 是一种使用 MVC(Model VIEw Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)。VIEw(视图)显示数据(数据库记录)。Controller(控制器)处理输入(写入数据库记录)。
简单也可以这样理解,VIEw 单纯负责 UI,如果要更新 UI 数据,则去调用 Controller,让 Controller 去控制 UI ,Controller 不生产数据,数据层都在 Model 中,而 Controller 持有 Model 层引用,所以它会调用 Model 层然后接受到数据,接着分发给 UI,整个流程就类似于这样。
实际上,这就是一种简单的分层机制,不同的层次做不同的事,让代码结构更清楚,各层职责也清楚,不用把所有逻辑写一块,导致代码臃肿,而且复用性也差。
在 16、17 年左右,AndroID 领域大家突然开始讨论 MVP,也有很多人讨论两者的区别,实际上,个人觉得 MVC 跟 MVP 几乎没啥差别,同样的思想只是换了一个名字而已,Controller VS Presenter,都是控制器的角色。
MVP 为什么在 AndroID 中被大家所讨论,最主要的原因还是由于 Activity 机制。每一个 AndroID 开发大都是从写 Activity 开始,一个界面对应一个 Activity,所以一开始业务简单的时候,大家会很容易的把所有的 *** 作逻辑都写在 activity 里,这很正常,因为 Activity 就是这么一个机制,Google 就是这样设计的。
后来软件规模越来越大,Activity 中的代码越来越多,代码越来越难以维护,原来在 Activity 中堆代码的机制就受到了考验。实际上,如果正确利用 MVC 模式完全可以解决 Activity 臃肿问题,只不过后来同样用了分层模型去解决问题,但是给这个模型起了另外一个名字 — MVP。
实际上,MVC、MVP 不重要,重要的是去理解正确的软件开发理念。分而治之,各司其职永远都是软件开发的真谛。
链接2019-04-19:请谈谈你对 MVC 和 MVP 的理解? · Issue #33 · Moosphan/Android-Daily-Interview
总结以上是内存溢出为你收集整理的MVC 与 MVP 并无两样全部内容,希望文章能够帮你解决MVC 与 MVP 并无两样所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)