MVC的前世今生
说起MVC大家并不会太陌生,只要进入Java开发领域MVC的概念就会响彻你的耳旁。不过如果有人问你什么是MVC你会怎么回答呢?
而Controller层则只用于控制流程,由于很多同学认为Service属于Controller层从而导致了Controller层的业务代码量巨大!
事实上的确有不少同学虽然正确理解了MVC,也认同Mode层包含All Logic,只不过在具体定义业务层逻辑时并没有合理地对业务逻辑代码进行良好的责任区分,从而导致逻辑代码非常长阅读和UT起来比较困难!
如何持续提升?这里有一个比较可行的方法分享给大家,就是建议大家养成持续编写UT的习惯,由于UT测试需要Mock不同的组件,因此一旦发现UT无法写下去的时候此时就需要考虑对代码逻辑进行合理的重构,如此反复才能持续提升代码编写水平!
实际上MVC的概念最早来源于Java SE版本,那时候Java Swing视窗系统刚刚兴起,人们发现复杂的UI+Java业务逻辑代码耦合在一起实在让人抓狂,于是有人提出了MVC模式!
MVP从而何来
MVP(Model-View-Presenter),在思想上MVP与MVC的理念是相同的,它侧重的场景是对MVC模式中V层的管理。Presenter的英文含义为“代言人”的意思,因此在MVP模式中View并不直接使用Model,而是通过Presenter与Model之间交互,类似于MVC中的Controller层。
MVVM是什么
在实际的开发时间中Model与View是很难分开的,除非M/V在同一个本地环境才好实现,而在现在的前后端分离架构中,由于处处都需要网络交互,所以要实现互联网时代的MVVM模式是很难行得通的!Google在早期推出过一个跨网络的MVVM框架JSF,但被应用得并不广泛!
总结
-
在MVC模式中M=(S+DAO)而S的复杂性需要通过设计模式+软件结构设计加以解决;
-
MVC是一种软件架构方式,而M层的良好设计则依赖于软件结构;
-
主动式&被动式(React)你变了,我再变,等人家调用没有依赖,写代码需要向依赖少的方向进行,写被动式的程序比较好,因为依赖少;
推荐阅读:
转载:https://blog.csdn.net/weixin_44296862/article/details/100982282