关于为什么用MVC的一点思考

来源:互联网 发布:松岛菜菜子知乎 编辑:程序博客网 时间:2024/03/29 03:15

学习需要不断的体验、思考和总结 

         MVC  (Modal View Controler)本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。关于详细的MVC的介绍可以参见百度百科MVC模式 (http://baike.baidu.com/view/739359.htm)

         为什么使用MVC这种模式架构,当然因为是它有一些优点,而且刚好满足了我们系统开发追求懒惰的需要。很多关于MVC优点的总结,不过感觉不是自己想要的,自己总结一下:

       1 解耦 我们不能基于用户需求是明确而且不会变化的假设条件去做项目写程序,若想满足用户的需求就像在公园里散步一样轻松,必须设法解决商业逻辑代码和表现层代码之间的解耦合问题。MVC是一个粗粒度上的解耦,把一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变,这是我们开发维护中所需要的。

      2 重用 没有人愿意不停的重复同样的代码,无论是写还是粘贴复制。编程本来是很有意思的事情,可是不断的重复让我们觉得枯燥乏味。如果不幸(这种不幸时常发生)的赶上需求有点儿小变更,搜索所用需要修改的代码,无疑更是对我们耐心、心细和胆大的极度考验。MVC分离出来之后,多个视图对应一个模型的复用能力,多少令人开心。重用(无论是方法级的、类级的、模块级的)是我们编码所追求的。

    3 扩展 MVC式的编程,可以使系统很容易纵向和横向的扩展,而基本上不会破坏原有系统的稳定性。系统是对一定时空下业务的需求的固化,而需求总是随时空而改变的,如果是一个不易扩展的底层架构无疑不能支撑起一个有生命力的系统。

        说到底MVC仅是一个规范而已,要想到达我们追求的懒惰的目标,需要我们不停的勤奋的借鉴和实践。

————————————————————————————————————————————————

附:

传统的 J2EE Web 层框架中的 MVC 架构都是基于 Thin Client 模型的。一个基本的假设是智能完全存在于服务器端,并没有考虑到客户端的处理能力。Ajax/Flash/XUL/XAML 还有移动智能应用的出现使得智能客户端越来越流行,客户端的智能有越来越强的趋势。这个趋势对于传统的 MVC 架构形成了很大的冲击,传统的架构如果不重新思考和设计,就很难适应这种变化。首先遇到的问题就是服务器端的 Controller 无法控制客户端的表示逻辑,而不能简单地把分布在客户端的表示逻辑作为原来架构的 View 来看待。现在不仅服务器端要有 MVC,客户端同样要有 MVC,并且它们之间还要进行交互和同步。因此需要以一种新的角度,综合考虑客户端和服务器端智能的分布,设计出来一种新型的整体 MVC 架构来。 

 

原创粉丝点击