MVC到底分几层? |
您所在的位置:网站首页 › mvc模式的几个重要规则 › MVC到底分几层? |
在技术分享课上,小组成员比较了Thinkjs与Express,说Thinkjs的分层设计更好,而Express的MVC框架更容易理解,当时我打断了他的讲述并提问,Express没有分层吗?MVC不能分层吗?MVC到底分几层? MVC到底分几层?其实,这是一个混淆逻辑的说话,MVC是一种复合的设计模式,而分层则是一种降低耦合的架构设计思想,这两者本来风牛马不相及,然而随着Struts、Spring MVC等WEB框架的兴起,加上一群辅导老师的推泼助澜,把它们强行堆积在一起,在面试JAVA程序员时,经常听到这样的说法,MVC分为三层,控制器C是第一层,业务模型M是第二层,数据访问是第三层,如果我继续问,那视图V在哪一层?应试者一般都哑口无言。 在大部分的WEB应用中,我们一般都划分为三层,WEB控制层、业务逻辑层与数据访问层,见下图所示。但这并不意味着,我们只能划分为三层,划分为多少层完全取决于业务的需要,比如还可以添加基础服务层、数据集成层等,并且还可以切面分层,如安全控制层、系统日志层等。 需要注意的是,这里的分层跟MVC真没什么关系,如果有,那还破坏了分层思想的设计原则,分层思想的核心就是不能进行跨层调用,并且调用的方向是不可逆的,MVC能满足这样的设计原则吗?当然不能!无论把控制器C放到哪一层,它都要进行双层调用,分别调用业务模型M与视图模型V,如下图所示。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |