Model view controller 为什么MVC概念很重要?

Model view controller 为什么MVC概念很重要?,model-view-controller,architecture,Model View Controller,Architecture,在开发应用程序时,模型-视图-控制器的概念被广泛地表达为需要牢记的重要事项。但是在开发应用程序时,我很难区分我是否在使用MVC模型,以及这是否会损害我的应用程序。为什么MVC概念在应用程序开发中很重要?它如何帮助开发人员开发更好的程序?您听说过“关注点分离”吗?简单来说,MVC是一种允许系统的不同部分松散耦合(或分离)的体系结构。视图通常为哑视图,显示数据并执行用户操作。模型表示系统中的数据和域逻辑。控制器在视图和模型之间进行联络,通常控制流。在最初的Smalltalk MVC模式上有很多变体,

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

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

它的优点是使代码不那么脆弱,更容易理解和更改,更容易进行单元测试。都是因为它被分成不同的部分

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


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

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

这能解决什么问题?好的,正如分离函数如何解决可读性、模块性和耦合性问题一样,MVC也是如此。比如说,如果你想改变一段代码,你可以在一个较小的子集中处理它,这个子集或多或少地与较大的代码隔离。这使您能够更有效、更合理地添加、修改或删除代码。它也有助于测试,因为类似的代码被划分为多个组,所以您可以更好地覆盖测试用例。同样重要的是,最终编写的代码要少得多


希望这能有所帮助。

这是一个在经历了一些软件开发项目后您就会理解的问题

最重要的是,它将代码划分为逻辑区域。UI代码保存在UI(视图)中,业务逻辑保存在控制器中,对象保存在模型中。如果您需要更新UI、创建不同的UI(例如web界面)、创建web服务或其他什么,那么您就不需要花费一整天的时间来剖析一堆混乱的、无法理解的代码。您还可以让团队中的不同成员专门从事某一领域的工作,如UI或模型,这可以产生更健壮的代码,或者允许初级开发人员从事比整体情况更简单的工作

这是我在微软Web客户端软件工厂(基于MVC…或MVPC…或其他任何东西)工作的MVC框架之前的一篇老文章:


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

我可以向你保证,这是值得你花时间学习的。我建议你开始做一些简单的事情,比如(CodeIgniter,PHPBlueprint),让你的脚湿透,看看MVC的工作

结帐的好书是