【C2P】谈谈MVC

简单的谈谈自己对MVC模式的理解

MVC,Model View Controller,所谓的当今软件开发最为流行的一种模式。

MVC将整个系统分为三个部分:Model,负责业务模型,主要是数据库和对数据的操作;View 负责界面展示,主要用不同的方式表现出需要的结果;而Controller,控制器便是业务逻辑的实现。

一个好的MVC框架必须要将View和Controller分开,Model 则在小型的开发中常常与Controller 混合,通过强有力的C来实现业务逻辑。MVC模式中,C是核心,一切的一切都是控制器来操作整个系统的运行,而M则可以让数据操作和业务逻辑分开,良好的model只需要为controller提供需要的接口就OK了而没有必要去仔细考虑其内部实现。View则是整个系统直接与用户接触的模块,注重的是用户体验还有UI设计。

MVC的使用可以将整个开发团队分为前端和后端两个部分,使得程序员能够专注于业务逻辑实现和模型创建,而美工设计人员可以毫无拘束的实现自己的才能而不用考虑数据的来源于业务的逻辑实现。

但不是说V一定不重要而C一定很重要。View是整个系统能否受到用户欢迎最重要的因素。我们现在的开发者很多时候没有很好的理解团队合作方式,没有清楚的理解自己在团队中的职能,于是就只是去写后台代码,完全不考虑代码复用性以及界面展示,忽略了最基本的用户体验,这是不好的。写代码时候不需要重复的去造轮子,并且要学会把代码分模块然后组合在一起,降低犯错的风险。每一个小的模块实现最基本的功能,然后组合起来就可以变得很强大。当然模块的组合并且实现通信是我们需要去想的。

常见的MVC框架介绍,Java的当然要说struts 。这是MVC界元老,超过10年的使用。现在spring、struts2和Hibernate 与struts 组合变成了最为实用的S2SH ,企业级用户标配。S2SH学习成本不高,但是如果要深入去了解各种机制,还是有点儿费劲的,只是S2SH一般适合用大型的项目,小型的项目没有办法去完美的体现MVC的强大。

PHP中,当然要说zendframework 。ZF是PHP最大最专业最完善的MVC框架,于是显得不是那么优雅,学习成本相对较高。还有就是smarty,这个东西当年很火,现在不想提,拿来做MVC的入门还是可以的。CodeIgniter ,CI是一个非常轻量级的框架,于是简洁明了同时就是因为简单而做不了很重要的项目,文档很全,学习成本很低,上手很容易,开发很简单,性能很棒。ThinkPHP是国人开发的比较优雅的PHP框架,MVC模式能够很好的体现,国内使用者众多。最后一个是我正在使用的神器:laravel.这个框架被PHP专业人士所津津乐道,并且是2014年最优秀的PHP框架。简洁的思想,艺术性的语法,完善的文档,使得laravel成为当今最火的框架。真心赞!用了两天,很棒,过几天写写关于这个的东西。

MVC能够合理的实现团队合作机制,这是对开发者最慷慨的馈赠!

刘凯宁@C2P
20140820

Share

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>