为什么MVC概念很重要?

时间:2012-03-08 22:55:20

标签: model-view-controller architecture

在开发应用程序时,模型视图控制器概念在整个地方都被表达为重要的事项。但是在开发应用程序时,我很难区分我是否使用MVC模型以及这是否会损害我的应用程序。为什么MVC概念在应用程序开发中很重要?它如何帮助开发人员制作更好的程序?

4 个答案:

答案 0 :(得分:7)

嗯,就像在生活中做很多事情一样,组织良好总是有帮助的。模型,视图和控制器是明显不同的代码片段,有助于为整个项目提供不同的功能。因此,它们是分开和有组织的。

想象一下,如果你正在设计一个程序。您不会将所有代码都放在一个函数中,是吗?不,您可以将它们分成单独的小函数来解决非常具体的任务。同样,作为程序员,我们一直在寻找将大型应用程序分离并分成较小部分的方法。其中一个组织设计模式是MVC,其中,模型(数据)存在于一个部分中,视图(UI)存在于一个部分中,控制器(逻辑)存在于另一个部分中。

这解决了什么问题?好吧,就像分离函数如何解决可读性,模块性和耦合性问题一样,MVC也是如此。假设您想要更改一段代码,您可以在较小的子集中处理它,该子集或多或少地与较大的代码段隔离。这允许您更有效和逻辑地添加,修改或删除代码。它还有助于测试,因为类似的代码被分组,您可以更好地覆盖测试用例。同样非常重要的是,你最终会编写更少的代码。

希望这有帮助。

答案 1 :(得分:4)

您是否听说过“关注点分离”?简单来说,MVC是一种允许系统的不同部分松散耦合(或分离)的体系结构。视图通常是哑巴并显示数据并采取用户操作。模型表示系统中的数据和域逻辑。控制器在视图和模型之间进行联络,通常控制流量。最初的Smalltalk MVC模式有很多变种,现在似乎每个框架都是MVC。

优势在于它使您的代码不那么脆弱,易于理解和更改,并且更容易进行单元测试。所有这些因为它被分成不同的部分。

一个很好的例子是我最近改变了工作并开始使用PHP开发一个新项目(我来自.NET背景)。学习曲线更容易,因为我们使用MVC框架。因为我已经知道了这个模式,所以我知道所有的东西都是“是”,以及系统是如何组合在一起的。

http://en.wikipedia.org/wiki/Model–view–controller https://gamedev.stackexchange.com/questions/5372/mvc-like-compartmentalization-in-games

答案 2 :(得分:3)

一旦你经历了一些软件开发项目,这是一个你会理解的问题......

最突出的是,它将代码分成逻辑区域。 UI代码保存在UI(View)中,业务逻辑保存在Controller中,对象保存在Model中。如果您需要更新UI,创建不同的UI(例如Web界面),创建Web服务或不创建Web服务,那么您不需要花费太多时间来分析难以理解的代码混乱的混乱。您还可以让团队中的不同成员专注于特定区域,例如UI或模型,这可以导致更强大的代码,或者可能允许初级开发人员处理比整个图片更复杂的事情。

这是MVC框架之前的一篇文章,当时我使用的是Microsoft Web客户端软件工厂(基于MVC ......或MVPC ......或其他):

http://www.xosoftware.co.uk/post/2010/02/02/Design-Patterns-(As-Used-in-the-Web-Client-Software-Factory-WCSF).aspx

答案 3 :(得分:3)

您正在分离软件组件并创建松散耦合的设计。这将使维护更容易,更易于阅读,更短的代码,灵活性和扩展能力。许多事情遵循这种设计模式(网站,移动应用程序等)

我可以保证你学习它是值得的。我建议跳进去,从像(CodeIgniter,PHPBlueprint)这样简单的东西开始,只是为了让你的脚湿透,看看MVC的工作。

结帐的好书是Head First Design Patterns