标签:
从完全不懂MVC模式到慢慢了解再到写出马马虎虎的MVC模式的小程序,其过程是无比蛋疼的。我想接触一个完全陌生的东西,大概都是这样的感觉吧。
在最开始,查找了各种博客百科,看了看MVC的定义,MVC的作用。model是应用程序中用于处理程序数据逻辑的部分,通常模型对象负责在数据库中存取数据;view 是应用程序中处理数据显示的部分,通向视图是依据模型书库创建的;controller 是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据;简单地说MVC模式就是为了让业务逻辑和视图部分抽离,让一个程序的前台和后台分开,这样能让开发人员更方便的编写自己的代码。
但是对于一个新手,这样的说明实在抽象,有一种似懂非懂的感觉。硬着头皮按着自己不成熟的想法开始写小程序。然而果然它失败了,View部分做了Model应该做的事情,然而Controller并不完整。除此之外,文件命名,文件分类,变量,方法命名问题在程序中屡见不鲜。通过师傅指出这些问题,我的想法也跟着一点一点的被纠正。
然后我开始在网上查找MVC实例,或许那是一个很简单的实例,但是理解它花费了我大量的时间,以下是我通过实例对MVC流程的理解:
通过尝试理解参照实例,我对MVC模式的理解有了很大的提高,将自己的小程序进行了改造。相比于上一次,层次分明了,但是代码繁琐了,结构出来了,但是视图的任务,控制器的任务却傻傻分不清了。于是,我需要对程序重构。
然而我又遇到了一个大问题,我不知道如何下手。我想是因为,这整个思路并不是我的,而是我模仿的实例。于是我又开始仔细的看MVC的定义,优点与缺点。我想应该更多的掌握它才能完善这个程序。根据自己的思考,和实例的理解,我有了一些自己独特的想法:
于是我开始重构工作。Controller的作用更加明显,index入口更加简明。数据流变成 index->Controller->model。距离马马虎虎的MVC模式又近了一步。师傅交代的接下来的任务,考虑拓展性,增加修改删除操作。
然而我从来没有考虑过拓展性,单独的修改删除是容易的,但是如果要把他放进这个毫无拓展性的程序中,却显得异常麻烦。由着自己一点点的思路,我开始修改程序,首先是修改页面的添加,然后是修改处理的添加,最后是处理结果返回。完成了。可是,程序有点不堪入目。而且在标准的服务器上跑不起来。
跑不起来具体原因有以下几点:
对&的用法完全不了解,以至于参照实例而出现乱用滥用,导致程序出错;
对__autoload()魔术函数的用法不熟,不了解其使用范围,而导致程序出错。
除此之外,程序太杂乱,被要求重写。而且,师傅告诉我View视图的工作可以更加简单甚至它可以是静态的,而控制器更加应当体现大脑的作用。另一天,想着师傅的话,我继续看了看定义。M V C!我好像又有一点点新的理解:
每一次重写程序,都有一点点新的想法,然而这些想法不知道是对与错,但是不论对与错,这是自己独自思考的结果。我想在实现MVC这个模块中,我学到的不仅是对MVC的了解,而是从错误中明白,学习需要循循渐进,基础是根基,对于自己都没有掌握的知识,不要乱用。查证,实践的函数,才是自己用着最舒心的函数。
我想这不可能是最后的理解,希望以后的程序越来越成熟。
标签:
原文地址:http://www.cnblogs.com/onyourway/p/4855515.html