我发现什么是mvp和mvc,有什么区别,但它并没有真正回答这个问题。

我最近开始使用MVC,因为它是我和我的工作伙伴将要使用的框架的一部分。 我们之所以选择它是因为它看起来很容易并且从显示中分离出来的过程,除此之外还有我们不知道的优点,可能会错过吗?

优点

  1. 显示和处理是分开的


缺点

  1. 到目前为止没有

===============>>#1 票数:46 已采纳

MVC是m odel, v iew和c ontroller的分离 - 仅此而已。 这只是一种范式; 在设计课程时,你应该有一个理想的想法。 避免将这三个类别的代码混合到一个类中。

例如,虽然表格网格视图显然应该显示一次数据,但它不应该有从哪里检索数据的代码,或者它的本机结构( 模型 )是什么样的代码。 同样,虽然它可能具有总结列的功能,但实际求和应该在控制器中发生。

“保存文件”对话框( 视图 )最终将路径(一旦被用户挑选)传递给控制器控制器然后向模型询问数据,并进行实际保存。

这种责任分离可以提高灵活性。 例如,因为视图不关心底层模型,所以支持多种文件格式更容易:只需为每个格式添加一个模型子类。

===============>>#2 票数:13

关注点分离是最重要的。

能够将这些组件分开,使代码更易于重复使用和独立测试。 如果您实际上并不知道MVC是什么,请小心尝试理解人们的意见,因为仍然存在一些关于“模型”是什么的争论(无论是业务对象/ DataSets / DataTables还是它代表底层服务)层)。

我已经看到各种各样的实现称自己为MVC但不完全正如Jeff的文章中的评论显示MVC是一个有争议的观点,我不认为开发人员会完全同意。

所有不同类型的MVC的一个很好的一轮上涨可点击这里

===============>>#3 票数:6

Jeff有一篇关于它的帖子 ,否则我在Apple的网站上找到了一些有用的文档,在Cocoa教程中(例如这个 )。

===============>>#4 票数:3

我认为使用MVC模式的另一个好处是它为其他设计方法打开了大门,例如MVP / Presenter以及许多其他MV *模式。

如果没有设计“组件”的这种基本隔离,采用这些技术将会更加困难。

我认为让你的代码更加基于接口是有帮助的..不仅在单个项目中,你几乎可以开始开发常见的“视图”,这意味着你可以模拟更多的应用程序中使用的“grunt”代码。 例如,一个非常抽象的“数据视图”,它简单地获取一堆数据并将其抛出到一个公共网格布局。

编辑:

如果我没记错的话, 这是关于MV *模式的一个非常好的播客 (不久前听了!)

===============>>#5 票数:1

它分离了由Controller控制的Model和View,就Model而言,你的模型必须遵循OO架构,未来的增强和代码库的其他维护应该非常容易,代码库应该是可重用的。

相同的模型可以具有任何视图,例如,相同的信息可以作为不同的图形视图显示。 相同的视图可以具有不同的模型,例如,不同的详细信息可以显示为单个图形,如条形图。 这就是View和Model的可重用性。

可以轻松实现视图的增强和构建视图的新技术的其他支持。

从事视图工作的家伙不需要知道底层模型代码库及其架构,反之亦然。

===============>>#6 票数:1

我能想到的一个问题是,如果你需要在视图中真正快速访问你的数据(例如,像骨骼位置那样的游戏动画数据)。在这种情况下保持分离层是非常低效的。

否则,对于比图形驱动更多数据驱动的大多数其他应用程序,它似乎是驱动UI的合理方式。

===============>>#7 票数:1

如果你按照stackoverflow播客,你可以听到Jeff(和Geoff?)讨论它的伟大之处。 http://blog.stackoverflow.com/2008/08/podcast-17/ 但请记住,使用这些单独的层意味着将来事情变得更容易 - 现在更难。 可以使事情变得更慢。 而你可能不需要它们。 但是,不要让它阻止你学习它是什么 - 在构建大型,强大,长寿命的系统时,这是非常宝贵的。

===============>>#8 票数:1

MVC只是一种通用设计模式,在精简Web应用程序开发的上下文中,使开发人员可以轻松地将HTML标记保留在应用程序的表示层(视图)中,与接收和处理客户端请求的方法分开(控制器)和视图(模型)中返回的数据表示。 所有这些都与关注点分离有关,即保持代码服务于一个功能目的(例如处理客户端请求)与代码完全不同(例如代表数据)。

为什么花费超过5分钟尝试构建网站的人可以理解为什么需要将HTML标记,JavaScript和CSS保存在单独的文件中,这是相同的原则:如果您只是将所有代码转储到单个文件中,结束了后来几乎不可编辑的意大利面。

既然你要求可能的“缺点”:我不是软件架构设计的权威,但根据我在MVC开发的经验,我认为指出遵循严格的,没有多余的MVC设计模式是最有用的也是很重要的。 1)轻量级网络应用程序,或2)作为更大的企业应用程序的UI层。 我很惊讶这个规范没有被更多地讨论,因为MVC不包含对业务逻辑,域模型或应用程序数据访问层中任何内容的明确定义。 当我开始使用ASP.NET MVC进行开发时(即在我知道其他软件体系结构存在之前),我最终会得到非常臃肿的控制器,甚至看起来充满了业务逻辑的模型,如果我一直在研究企业应用程序,那么让不熟悉我的代码的其他开发者很难修改(即更多的意大利面)。

===============>>#9 票数:1

这里没有提到的MVC的一个主要优点是MVC提供了支持SEO的RESTful URL。 当您明智地命名控制器和操作时,如果他们只查看您的网站Urls,搜索引擎就可以更轻松地找到您的网站。 例如,您有一个汽车销售网站和一个显示兰博基尼Veneno汽车的页面,而不是www.MyCarSale.com/product/6548参考页面,您可以选择www.MyCarSale.com/SportCar/Lamborghini-Veneno url for SEO的目的。

是MVC优势的一个很好的答案, 这里有一篇文章如何创建一个SEO友好的URL。

===============>>#10 票数:0

MVC架构的主要优点是可以区分模型,视图和控制器中的项目层,以实现代码的可重用性,易于维护代码和维护。 最好的事情是开发人员在项目维护之间添加一些代码感觉很好。

在这里,您可以看到有关MVC架构主要优势的更多要点。

===============>>#11 票数:0

![mvc架构] [1]

模型 - 视图 - 控制器(MVC)是用于实现用户界面的软件架构模式。 它将给定的软件应用程序划分为三个相互连接的部分,以便将信息的内部表示与信息呈现给用户或从用户接受的方式分开。

  ask by Teifion translate from so

未解决问题?本站智能推荐:

2回复

MVC中的M在哪里? [关闭]

我要问的这个问题是受我最近在Flex平台(以及一些假装实现MVC的框架)上的工作启发而来的,但是我认为它的普遍性足以吸引具有各种专业知识的人员。 很长时间以来,我一直遵循由Cairngorm之类的框架提出的范例- 查看,绑定到单例模型的属性以及调度事件。 事件由前端控制器捕获,结果
8回复

MVC的替代品[关闭]

模型视图控制器有哪些替代“设计方法”? MVC似乎很流行(SO是用它构建的,我知道的很多)但是它是唯一使用的方法吗?
1回复

Request MVC和Component MVC之间的区别[关闭]

我听说JSF正在实现基于组件的MVC,而Spring MVC正在实现基于请求的MVC。 我想知道这两种类型之间的确切技术差异是什么。
5回复

Java - 学习MVC [关闭]

我想学习如何将MVC架构应用到我的Java项目中; 主要是我在Swing的工作。 现在没有简单的解释或示例如何使用MVC编写正确的代码,除了我在这里找到的这两个: http://leepoint.net/notes-java/GUI/structure/40mvc.html
3回复

Microsoft的MVC实现是否与经典MVC模式不同[关闭]

在关于ASP.NET MVC的网络上的各种文章中,人们都提到微软的MVC实现在某种程度上与“经典”MVC模式不同。 但我从来没有见过任何人进入这个任何细节,乍一看我没有看到ASP.NET MVC是如何从所描述的内容,比方说,任何不同的位置 。 所以我的问题是:ASP.NET MVC真
2回复

Microsoft为什么选择MVC来构建ASP.net MVC? [关闭]

我知道什么是ASP.net,我知道什么是MVC和其他一些设计模式,我的问题是,为什么Microsoft选择这种设计模式? 为什么不ASP.net 3tiers或ASP.net AOP ... etc 使用它编程更容易,构建网站更强大吗? 换句话说,在ASP.net中使用MVC代替其他设计
4回复

试图了解MVC。 这是正确的吗? [关闭]

它的解释方式是通过使用事件和发布/订阅模型。 基本上,模型只是数据,对视图/ GUI / UI不了解。 该模型通常只是一个抽象对象,可以对其数据进行操作,并且可以执行其他操作。 视图是不同的类,可响应模型中的更改,通常将这些数据显示给用户。 以前,我不知道在没有视图和模型之间耦合的情
1回复

清洁架构与MVPC / MVC / MVP [关闭]

我正在研究Bob Uncle叔叔 ,并尝试在我的IOS / Android项目中使用巫婆设计模式的许多不同方面进行比较。 好吧,我注意到干净的拱门是非常强大和粗鲁的,但同时,在我看来,我应该创建的类和文件的数量是否过多。 所以我的问题是,这个设计模式比使用MVC / MVP / MV
3回复

MVC - 它在现实世界中如何运作? [关闭]

我已经阅读了许多计算器和温度计的微不足道的MVC例子,但我似乎无法将模式映射到现实世界的应用程序。 假设您有一个更复杂的场景。 假设您有一个网站购物车,要求用户在添加到购物车之前登录。 首先,用户看到产品页面(/ product / detail)并点击添加项目(/ cart / ad
1回复

什么时候Javascript打破MVC模式[关闭]

前几天我和同事争吵了。 这是关于构建我们的JavaScript视频播放器。 我想将XML注释文件传递给播放器,然后让它解析文件,然后让它以可配置的方式显示注释。 我觉得用这种方式嵌入它会更容易。 我的同事认为它会打破我们一直关注的纯MVC模式。 他宁愿解析注释文件服务器端,然