2012-03-08 111 views
4

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

回答

7

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

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

这个问题解决了什么问题?那么,就像分离函数如何解决可读性,模块性和耦合性问题一样,MVC也是如此。假如你想改变一段代码,你可以用一个更小或更少的代码来处理它。这使您可以更有效和逻辑地添加,修改或删除代码。它也有助于测试,因为类似的代码被分成组,所以你可能能够更好地覆盖你的测试用例。同样非常重要的是,你最终编写的代码少得多。

希望这会有所帮助。

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

3

这就是一旦你经历了几个软件开发项目,你就会明白一个问题...

最突出的是,它分离代码到逻辑区域。 UI代码保存在UI(视图)中,业务逻辑保存在Controller中,对象保存在Model中。如果您需要更新用户界面,创建不同的用户界面(如Web界面),创建Web服务或不需要,那么您不需要花费无数时间,只需花费一天时间就可以解开难以理解的代码。你也可以让一个团队的不同成员专注于某个领域,比如UI或模型,这可以导致更强大的代码,或者允许初级开发人员开发比整个图片更复杂的东西。

下面是从预MVC框架天旧的文章时,我与Microsoft网络客户端软件工厂(基于MVC ...或... MVPC或其他)的工作:

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

3

你正在分离软件组件并创建松散耦合的设计。这样可以实现更轻松的维护,更易于阅读和更短的代码,灵活性和可扩展性。许多事情遵循这种设计模式(网站,手机应用程序等)

我可以保证你学会这是非常值得你的时间。我会建议跳进来,并从像CodeIgniter,PHPBlueprint这样简单的东西开始,让你的脚湿透并看到MVC的工作。

结帐的好书是Head First Design Patterns