本文主要是介绍设计模式系列·Facade模式之MVC的烦恼,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
流行的MVC架构模式
如今的Web开发,各种框架风起云涌,势如破竹。
从国民第一的ThinkPhp到称霸全球的Laravel,这些框架有一个共同特征,都采用了MVC的架构模式。
没有任何意外,王小二的公司用Thinkphp来开发公司的主打产品。
Get新需求
一天,小二刚到公司,正打算坐下来喝杯茶。
老大走了过来:“小二啊,现在有个新的需求。咱们之前提交订单的模块,需要增加发送邮件的功能,你看看能不能实现?”
小二想了想说:“没问题,最多3天搞定!”
看王小二胸有成竹的样子,老大满意的点了点头。
臃肿的Controller
着手开干吧!小二打开熟悉的IDE,找到提交订单模块的Controller。
OMG!不看不知道,一看吓一跳,这个Controller的代码竟然接近2000行。
因为用户提交订单时,会与其他模块进行交互,需要的数据也比较复杂。
只见此Controller,从Model层各种拿数据,然后各种逻辑处理,怪不得代码到了将近2000行。
“哎,这2000行代码,看着就头疼,可让我怎么写啊”…小二叹气道。
“要不再去请教下C哥?”
MVC的烦恼
小二找到C哥,详细的描述了他的问题。
C哥喝了口水,淡定的说:“这个嘛,我之前也遇到过。”
“您也遇到过,怎么解决的?”
“这个问题,哈哈,姑且就叫MVC的烦恼吧!MVC将View与Model进行了分离解耦,这固然很好,但很多人就将业务逻辑的处理写在了Controller里,导致Controller越来越臃肿,以致最后都无法维护。”
“对对对,您说的太对了,我就经常这样写。”
[图片:臃肿的代码]
给Controller减肥
C哥继续说道:其实,Controller不应该处理过多的业务逻辑。给你举两个例子就明白了。
控制器,就像遥控器一样。
你见过遥控器关心电视怎么播放视频吗?没有,遥控器只是发送播放视频的信号
这篇关于设计模式系列·Facade模式之MVC的烦恼的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!