今天去面试,做的第一道笔试题就是关于MVC框架的理解,当时我就懵了,天天说MVC,真要说起来我什么都想不起来!空白的把答案交上去,当时叫感觉老师42码的鞋拍在我37码的脸上。回来就在看相关的技术文章。想写点东西,顺便做个总结也好!
MVC就是Model View Controller,Model刚刚以前一直以为是javabean,就是数据,看了文章和跟一位前辈讨论了一下,model不仅仅局限于数据,它也可以是业务。它可以是数据库中的原始数据,也可以是数据库中数据进行业务处理的数据,它还可以是单纯的业务(这个在java中没有碰到过,毕竟实战经验不够多,感觉jbpm有点像)。View就是视图层了,在java中应该是jsp,应用到的技术也有CSS、JS等,controller控制层,个人认为它是连接Model和View的枢纽,但是又完全分离。没有Controller,Model就没有作用,View也不可能呈现相应的数据。MVC框架做的软件好比一个人在扫地,人是Controller,扫地的动作是Model,地就是view,没有人的动作,扫把是不可能执行的,扫把没有把地扫干净的功能,是不可能呈现出地干净的效果,有人问扫把是什么,扫把可以看做是Controller执行框架,可以看做是struts2框架。而在web项目中一般有service层和dao层,个人感觉这个都是为model服务的。可能比喻不太形象,个人理解是这样的。
关于MVC框架的优缺点,想写点,但是又怕写不全,写得不好,不敢敲。不过我还是写几点自己看到的,感觉自己在开发中也确有体会的。
总的来讲对于一个框架的优缺点,要看它用到什么地方,利用此框架来干什么?对于MVC如果用于比较小的项目是没有必要的,有点大材小用的意思。
缺点:
①、使用MVC框架会使得系统的运行效率更低,因为它把一个系统分成几个部分,每一个功能都要经过固定步骤,使得有些简单的功能效率降低。
②、使用MVC会增加代码的复杂性
③、在做MVC项目的时候,假如新增加了一个功能,会级联到各个层次都要增加相应的代码,有时候感觉比较繁琐
优点:
①、MVC使得系统的结构更为清晰,使得开发人员更容易理解,加快开发速度
②、MVC使得系统可以从不同的层次同时开发,提高开发系统的效率
③、MVC提高了代码的复用性,并且对于新功能的添加更为方便。
若有错误,望各位前辈及时指正,谢谢!