浅谈MVC
MVC,在学生时代老师就讲过了,只是针对Java来讲的,当是理解是一种三层结构思想,数据库、业务逻辑与界面,html、jsp是view,servlet是controller。。。,又有structs MVC ,spring MVC,又说什么model不变,view与controller可以随意变化,还是model与controller不变,view随意变化,反正弄得很糊涂。
感觉是简单的东西复杂化了,本来弄一个模式出来是为了更容易理解更容易开发,为啥要讲的这么深奥。
一个东西的产生是有它的理由的,我们要知道这个缘由,假设没有这个MVC,我们自己去设计这个程序时是会怎么去做。
一个东西如果不了解它的内部,最好不要去用它,因为如果遇到一些关户底层的问题,你就没办法去理解,去解决,所以很多公司都有一套自己的框架,这样就可以招一帮新人,傻瓜式操作,降低成本。其实不然,新人们由于不了解底层的缘由,遇到解决不了的问题都抛给框架,都说是框架的问题,且由于有框架的封装,有些代码写的效率很低都无察觉。也不利于新人的成长。
MVC是一种设计模式,设计模式高于语言本身,就是可以适用多种语言。但Java与MVC配合度更高,有些Java的转到php,动不动就要把MVC套过来,感觉很高大上,其实还要看具体情况,没要用的为啥要用,把简单的东西复杂化好讨厌,且MVC不方便调试。
其实我对很多框架都有排斥,没有排斥的包括有jquery及jQuery的easyUI。可能和我第一家公司是做Delphi有关系,我喜欢控件操作,基本不需要了解底层,要了解有很容易,只有js与css代码。
那重点来了,什么是MVC?
纯属个人看法:程序开发其实就是逻辑处理+数据交互。逻辑处理一般是独立的,各种ifelse等等,写的代码质量好坏看个人能力与经验。数据交互是重点,是需要永恒学习的地方,也是难点。有TCP/IP也就是socket(桌面程序用的广),ftp(文件传输),http(web开发上的post与get),webservices(也是基于http的一种安全度较高的通信技术),websocket(html5新技术),广义上的数据交互也应该把数据库通信考虑在内,这里不讨论。
其实我要讲的数据交互都不是上面讲的具体那种方式的数据交互。而是Js怎么和Java进行交互,单纯用jsp可以完成这个功能,但对于大量的数据交互,jsp的写法比较繁琐。所以可不可以封装一个jsp,js中只需指明是调哪个类的哪个方法,这个jsp将指令传给class,class返回内容给jsp,jsp再传给js。一目了然,封装好的那个jsp就是M,js是V,class是C。
MODEL就是调试解调器,就是宽带中的猫,猫只是一个中介,用户就是V,各种网站服务器就是C,通过这个猫,用户就可以访问各种网站了。
同理PHP的MVC也是这样,js通过猫与class交互。
所以我对MVC的理解就是一种数据前后台的交互方式。
结合ajax,可以看到MVC这种数据交互方式的好用,当然MVC的交互方式也是基于传统的action\post\get的。
相信都看晕了哈。
浙公网安备 33010602011771号