MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC虽然给了我们一套使用参考方案,同时也应用的很多,但是,在使用的过程中会发现,如果用controller来整合model+view,那么,对于一些相应的业务处理逻辑,将会使得整个controller非常的拥挤,很多的时候,可能写的代码由于都拥挤在controller里面,造成阅读方法时,非常不便,甚至,我看到有的同事,在一个controller里面写上两三千行的代码,如果业务需要,还得更多,这是非常不好的风格。其实一个controller里的代码,最好控制在500以内,尽量不要超过800行。
曾问过好几个同事,你们对MVC怎么理解,以及觉得应该如何使用,回答的惊人一致,模型(model)-视图(view)-控制器(controller),很官方的,其实也没有错,但是在谈到使用的时候,他们更多只是在controller里面整合model+view,然后在里面写各种交互,各种业务逻辑处理,于是乎,在查看他们的代码中,就能经常看到动则两三千行的代码,这对后期维护是一个非常头疼的问题,尤其是对于后期接手的人员,简直等于谋杀,所以在我项目组里,我都要求他们去不断的优化自己的代码,争取做到,单个controller类里不能超过800行,刚开始的时候,对他们来说,是件很烦琐的事情,尤其是以前就没有考虑过如何去做,于是我给他们提出方案,在原因的模式中,再添加一个专门处理业务逻辑的类,同时创建类方法进行处理。于是,controller里面的代码量,呈直线下降,而且阅读起来也方便很多。
学习是一种过程,我们在学习的过程中要善于发现不足,同时去寻找更有效的解决方法,交流才能进步,第一次写文章,下篇写最近一个项目中使用runtime搭建的一个高度解耦的框架,如有不同见解,欢迎留言!